{"version":3,"file":"lDy0eJ10i.ChnPiNTO.mjs","names":["React.useState","React.useRef","React.useCallback","products","urlParams","error","type","active","value","p","matches","debounce","React.Component","logDebug","useState","get","useMemo","useState","useRef","useCallback","get","countryCode","product","logDebug","required","useState","useCallback","get","useRef","React.useCallback","addPropertyOverrides","FC_ProductPriceFonts","FC_ProductVariantStateFonts","LoadingFonts","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","variationAxes","addPropertyOverrides","FC_ProductPriceFonts","FC_ProductVariantStateFonts","LoadingFonts","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","variationAxes","addPropertyOverrides","FC_ProductVariantStateFonts","LoadingFonts","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","FCAddToCartState","FCOutOfStockState","FCAddSelectVariantState","FCLoadingState","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","SVG","React.useRef","React.useState","React.useMemo","React.useCallback","minValues","range","fonts","css","className","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","LinkLarger","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","className"],"sources":["https:/framerusercontent.com/modules/A55TPw8oJtDToWtsjcDZ/efvR3aKErSMemVA7DBdP/filterMappings.js","https:/framerusercontent.com/modules/Hk0F8C2ru2KtdcLr7KmL/E6WMIzPeV3m14tYvXG7W/FC_CatalogDisplay.js","https:/framerusercontent.com/modules/N07JJZfuMtyHijtiRRgH/WxKb8BNVAs4oPsnCv1Q7/FC_ProductPrice.js","https:/framerusercontent.com/modules/FXrY3V9ZYVL8aziafDQn/Tma2gqWqWmkibhcQtVN5/initialize.js","https:/framerusercontent.com/modules/DfixsupJND2Hhr1xcPbk/P1uTNJ4X5IvWqLbsiuve/FC_ProductPurchaseButton.js","https:/framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js","https:/framerusercontent.com/modules/VIVKyf9rGdoFWqtCu8Qu/rFK3Im131xEQHyznE0Qa/BUYG9ywcx.js","https:/framerusercontent.com/modules/BOkvLo5KbEAi5iqOtk2L/Q6Ei0M6at2JryO2a3V9z/DkbGplAGc.js","https:/framerusercontent.com/modules/NDoBhsfo4VwSdvU1hJ7r/i5l1eY4gDDYlXGbRSjlE/Jw2cfObWm.js","https:/framerusercontent.com/modules/qVeGhEdbXLSSAkdWfP0e/nJvpac2pUzMVSE4ifIOU/OOz_ikM7Q.js","https:/framerusercontent.com/modules/V1k4mZdpeO1uFN1GDZcc/YYHwkuQyUobvAQ9AxbFz/DjzTC7Itj.js","https:/framerusercontent.com/modules/9KHRmXb0ww1T2NvhEZ29/EDEJgFXmgQz0WeulSAB4/hd2gbXUgi.js","https:/framerusercontent.com/modules/C5s4mO0gBJtqskC4YAhz/MEadtt1HqvclACBtUYnM/FC_CatalogFilterButton.js","https:/framerusercontent.com/modules/ad9yhLXM3V5IbFDVLQMe/4pIa6vx1cUsqsIvPAa5P/vXV_emMSy.js","https:/framerusercontent.com/modules/pId37CTKtDKOjBQpw43q/uQhVHFsy7Z1BwE1lKo5G/c3uWzgU6f.js","https:/framerusercontent.com/modules/woK6dVNc4o3jdzD1Og44/YPpPJ3EbN4TDpldXA1qi/RFgWkuAas.js","https:/framerusercontent.com/modules/fwrH4jqlgDXpHtyVf0ID/xblG8fhBhMG245hWc4aV/lDy0eJ10i.js"],"sourcesContent":["export const getFilterValue=(property,options)=>{if(property.startsWith(\"variant_\")){return{type:\"variant\",value:{[property]:options.value}};}switch(property){case\"product_type\":case\"product_tag\":case\"collection\":return{type:property,value:options.value};case\"price\":return{type:\"price\",// value: options.price_ranges.map((range: string) => {\n//     const [min, max] = range.split('-').map(Number);\n//     return { min, max };\n// }),\nvalue:options.values.map(value=>{if(value.priceType===\"Under\"){return{min:null,max:value.max}// Handle \"Under\" case\n;}else if(value.priceType===\"Over\"){return{min:value.min,max:null}// Handle \"Over\" case\n;}else{const[min,max]=value.split(\"-\").map(Number);return{min,max}// Handle regular range\n;}})};case\"discount_amount\":return{type:\"discount_amount\",value:options.discount_amount_min?{min:options.discount_amount_min,max:options.discount_amount_max}:options.discount_amount};case\"discount_percent\":return{type:\"discount_percent\",value:options.discount_percent_min?{min:options.discount_percent_min,max:options.discount_percent_max}:options.discount_percent};case\"on_sale\":case\"in_stock\":case\"bundle\":case\"subscription\":return{type:property,value:options.value===\"true\"};default:return{type:property,value:\"\"};}};/**\n * Convert legacy filter names to new format and vice versa\n */export const convertFilterName=(name,toLegacy=false)=>{//console.log('convertFilterName input:', name, 'toLegacy:', toLegacy);\nconst mappings={// New format to legacy format\nproduct_type:\"product-type\",product_tag:\"product-tag\",on_sale:\"on-sale\",in_stock:\"in-stock\",bundle:\"bundles\",subscription:\"subscriptions\"};if(toLegacy){const result=mappings[name]||name;//console.log('convertFilterName output (toLegacy):', result);\nreturn result;}else{// Legacy format to new format\nconst reverseMappings={};Object.entries(mappings).forEach(([key,value])=>{reverseMappings[value]=key;});const result=reverseMappings[name]||name;//console.log('convertFilterName output (fromLegacy):', result);\nreturn result;}};/**\n * Parses URL parameters and converts them into filter state\n *\n * URL format conventions:\n * 1. Between different filter types: Always use AND logic with separate parameters\n *    (e.g., ?product_type=shirts&collection=summer)\n *\n * 2. Within the same filter type:\n *    - For collection, product_type, product_tag: Use comma-separated values for OR logic\n *      (e.g., ?product_type=shirts,pants,jackets means products that are shirts OR pants OR jackets)\n *    - For variant filters:\n *      a) Comma-separated values indicate OR logic\n *         (e.g., ?variant_color=blue,red,green means blue OR red OR green)\n *      b) Repeated parameters indicate AND logic\n *         (e.g., ?variant_color=blue&variant_size=large means blue AND large)\n */export const parseUrlFilters=urlParams=>{console.log(\"Parsing URL filters from:\",urlParams.toString());const filters={collection:{active:false,values:[]},product_type:{active:false,values:[]},product_tag:{active:false,values:[]},variant:{active:false,values:[]},price:{active:false,values:[]},discount_amount:{active:false,values:[]},discount_percent:{active:false,values:[]},on_sale:{active:false,value:true},in_stock:{active:false,value:true},bundle:{active:false,value:true},subscription:{active:false,value:true}};[\"collection\",\"product_type\",\"product_tag\",\"product-type\",\"product-tag\"].forEach(filterType=>{const value=urlParams.get(filterType);if(value){const normalizedType=convertFilterName(filterType);console.log(`Found filter ${filterType}, normalized to ${normalizedType}:`,value);// Split by comma for OR logic between values\nconst values=value.split(\",\").filter(Boolean);filters[normalizedType].values=values;filters[normalizedType].active=values.length>0;}});// Process variant filters (variant_color, variant_size, etc.)\n// Support both comma-separated values (OR logic) and multiple params with same name (AND logic between different options)\nArray.from(urlParams.keys()).forEach(key=>{if(key.startsWith(\"variant_\")){const variantName=key.replace(\"variant_\",\"\");const value=urlParams.get(key);if(value){// Decode the value first to handle any URL encoding\nconst decodedValue=decodeURIComponent(value);// Log the variant filter values being processed\nconsole.log(`Parsing variant filter ${key}:`,{rawValue:value,decodedValue,isMultiValue:decodedValue.includes(\",\")});// Split by comma for OR logic between values of the same option\nconst values=decodedValue.split(\",\").filter(Boolean);// Each value is an OR option for this variant type\nvalues.forEach(val=>{filters.variant.values.push({name:variantName,value:val.trim()});});console.log(`Found variant filter ${key}:`,{values,orLogic:\"Values within same variant type use OR logic\"});}}});filters.variant.active=filters.variant.values.length>0;// Process price filters\nconst priceRanges=urlParams.get(\"price\");const priceMax=urlParams.get(\"price_max\");const priceMin=urlParams.get(\"price_min\");filters.price={active:false,values:[]};if(priceRanges){// Handle regular price ranges\nconst ranges=priceRanges.split(\",\").map(range=>{const[min,max]=range.split(\"-\").map(Number);return{min,max,priceType:\"Range\"};});filters.price.values.push(...ranges);filters.price.active=true;}if(priceMax){// Handle \"Under\" price ranges\nconst maxValues=priceMax.split(\",\").map(Number);const underRanges=maxValues.map(max=>({min:null,max,priceType:\"Under\"}));filters.price.values.push(...underRanges);filters.price.active=true;}// Handle \"Over\" price ranges\nif(priceMin){const minValues=priceMin.split(\",\").map(Number);minValues.forEach(min=>{filters.price.values.push({min,max:null,priceType:\"Over\"});});filters.price.active=true;}// Process discount filters\nconst discountAmount=urlParams.get(\"discount_amount\");if(discountAmount){const ranges=discountAmount.split(\",\").map(range=>{const[min,max]=range.split(\"-\").map(Number);return{min,max};});filters.discount_amount={active:true,values:ranges};}const discountAmountMin=urlParams.get(\"discount_amount_min\");if(discountAmountMin){const minValues=discountAmountMin.split(\",\").map(Number);if(!filters.discount_amount){filters.discount_amount={active:true,values:[]};}// Add each min value as a range with null max\nminValues.forEach(min=>{filters.discount_amount.values.push({min,max:null});});filters.discount_amount.active=true;}const discountPercent=urlParams.get(\"discount_percent\");if(discountPercent){const ranges=discountPercent.split(\",\").map(range=>{const[min,max]=range.split(\"-\").map(Number);return{min,max};});filters.discount_percent={active:true,values:ranges};}const discountPercentMin=urlParams.get(\"discount_percent_min\");if(discountPercentMin){const minValues=discountPercentMin.split(\",\").map(Number);if(!filters.discount_percent){filters.discount_percent={active:true,values:[]};}// Add each min value as a range with null max\nminValues.forEach(min=>{filters.discount_percent.values.push({min,max:null});});filters.discount_percent.active=true;}[\"on_sale\",\"in_stock\",\"bundle\",\"subscription\"].forEach(filterType=>{const value=urlParams.get(filterType);if(value===\"true\"){filters[filterType]={active:true,value:true};}});return filters;};/**\n * Updates URL parameters based on current filter state\n *\n * URL format conventions:\n * 1. Between different filter types: Always use AND logic with separate parameters\n *\n * 2. Within the same filter type:\n *    - For collection, product_type, product_tag: Use comma-separated values for OR logic\n *    - For variant filters:\n *      a) Group variants by name and use comma-separated values for OR logic within same variant type\n *      b) Different variant types use AND logic with separate parameters\n */export const updateUrlWithFilters=(filters,url)=>{console.log(\"Updating URL with filters:\",filters);// Clear existing filter params\nArray.from(url.searchParams.keys()).filter(key=>key.startsWith(\"variant_\")||[\"product_type\",\"product_tag\",\"collection\",\"price\",\"price_min\",\"price_max\",\"discount_amount\",\"discount_amount_min\",\"discount_percent\",\"discount_percent_min\",\"on_sale\",\"in_stock\",\"bundle\",\"subscription\",// Also include legacy filter names\n    \"product-type\",\"product-tag\",\"on-sale\",\"in-stock\",\"bundles\",\"subscriptions\"].includes(key)).forEach(key=>url.searchParams.delete(key));[\"collection\",\"product_type\",\"product_tag\"].forEach(filterType=>{if(filters[filterType]?.active&&filters[filterType]?.values?.length>0){url.searchParams.set(filterType,filters[filterType].values.join(\",\"));console.log(`Set URL param ${filterType}=`,filters[filterType].values.join(\",\"));}});// Add variant filters\n// Group variant values by name, and each group uses comma-separated values for OR logic\nif(filters.variant?.active&&filters.variant?.values?.length>0){// Group variant values by name\nconst variantGroups={};filters.variant.values.forEach(variant=>{// Use lowercase name for case-insensitive grouping\nconst normalizeName=`variant_${variant.name}`;if(!variantGroups[normalizeName]){variantGroups[normalizeName]=[];}// Avoid adding duplicate values\nif(!variantGroups[normalizeName].some(v=>v.toLowerCase()===variant.value.toLowerCase())){variantGroups[normalizeName].push(variant.value);}});// Add each variant group to URL with comma-separated values (OR logic)\nObject.entries(variantGroups).forEach(([key,values])=>{// Don't encode the values here as URLSearchParams will handle that\nurl.searchParams.set(key,values.join(\",\"));console.log(`Set URL param ${key}=`,values.join(\",\"),\"(OR logic between values)\");});}// Add price filters\nif(filters.price?.active&&filters.price.values?.length>0){// const regularRanges = [];\n// const underMaxValues = [];\n// const overMinValues = [];\nconst regularRanges=[];const underMaxValues=[];const overMinValues=[];filters.price.values.forEach(range=>{if(range.priceType===\"Under\"){underMaxValues.push(range.max);}else if(range.priceType===\"Over\"){overMinValues.push(range.min);}else{regularRanges.push(`${range.min}-${range.max}`);}});if(regularRanges.length>0){url.searchParams.set(\"price\",regularRanges.join(\",\"));}if(underMaxValues.length>0){url.searchParams.set(\"price_max\",underMaxValues.join(\",\"));}if(overMinValues.length>0){url.searchParams.set(\"price_min\",overMinValues.join(\",\"));}}// Add discount filters\nif(filters.discount_amount?.active&&filters.discount_amount.values?.length>0){const discountRanges=[];const discountMinValues=[];filters.discount_amount.values.forEach(range=>{if(range.max===null){// This is an \"Over\" type discount\ndiscountMinValues.push(range.min);}else{// This is a regular range\ndiscountRanges.push(`${range.min}-${range.max}`);}});if(discountRanges.length>0){url.searchParams.set(\"discount_amount\",discountRanges.join(\",\"));}if(discountMinValues.length>0){url.searchParams.set(\"discount_amount_min\",discountMinValues.join(\",\"));}}if(filters.discount_percent?.active&&filters.discount_percent.values?.length>0){const discountPercentRanges=[];const discountPercentMinValues=[];filters.discount_percent.values.forEach(range=>{if(range.max===null){// This is an \"Over\" type discount\ndiscountPercentMinValues.push(range.min);}else{// This is a regular range\ndiscountPercentRanges.push(`${range.min}-${range.max}`);}});if(discountPercentRanges.length>0){url.searchParams.set(\"discount_percent\",discountPercentRanges.join(\",\"));}if(discountPercentMinValues.length>0){url.searchParams.set(\"discount_percent_min\",discountPercentMinValues.join(\",\"));}}[\"on_sale\",\"in_stock\",\"bundle\",\"subscription\"].forEach(filterType=>{if(filters[filterType]?.active){url.searchParams.set(filterType,\"true\");}});};\nexport const __FramerMetadata__ = {\"exports\":{\"getFilterValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FilterValue\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateUrlWithFilters\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseUrlFilters\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"convertFilterName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./filterMappings.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 */function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{debounce}from\"lodash-es\";import{parseUrlFilters,updateUrlWithFilters}from\"https://framerusercontent.com/modules/A55TPw8oJtDToWtsjcDZ/efvR3aKErSMemVA7DBdP/filterMappings.js\";// Global state management to prevent duplicate instances\nconst globalSortState={instances:new Set,eventListeners:new Map,cleanup:()=>{globalSortState.instances.clear();globalSortState.eventListeners.forEach((listener,event)=>{window.removeEventListener(event,listener);});globalSortState.eventListeners.clear();},lastUrl:typeof window!==\"undefined\"?window.location.href:\"\",isBackToFilter:false};// Ensure cleanup on page unload\nif(typeof window!==\"undefined\"){window.addEventListener(\"beforeunload\",globalSortState.cleanup);}// Helper function to find 13-digit number\nfunction findDeep13DigitNumber(obj){if(typeof obj===\"string\"){const match=obj.match(/\\d{12,}/);if(match)return match[0];return null;}if(!obj||typeof obj!==\"object\")return null;for(const key in obj){if(Array.isArray(obj[key])||typeof obj[key]===\"object\"){const found=findDeep13DigitNumber(obj[key]);if(found)return found;}else if(typeof obj[key]===\"string\"){const match=obj[key].match(/\\d{12,}/);if(match)return match[0];}}return null;}class ErrorBoundary extends React.Component{static getDerivedStateFromError(error){return{hasError:true,error};}componentDidCatch(error,errorInfo){console.error(\"CMS Error:\",error,errorInfo);}render(){if(this.state.hasError){return /*#__PURE__*/_jsx(\"div\",{style:{padding:20,color:\"red\"},children:\"Something went wrong loading the CMS content.\"});}// @ts-ignore: TypeScript doesn't recognize props in this context\nreturn this.props.children;}constructor(props){super(props);_define_property(this,\"state\",{hasError:false,error:null});}}// Let's add a helper function for consistent logging\nconst logDebug=(component,action,data)=>{// console.log(`🔍 [${component}] ${action}:`, data)\n};// Helper function to get active search fields based on scope settings\nfunction getActiveSearchFields(scope){const fields=[];if(scope?.title)fields.push(\"title\");if(scope?.productType)fields.push(\"productType\");if(scope?.productTag)fields.push(\"tags\");if(scope?.collection)fields.push(\"collections\");if(scope?.vendor)fields.push(\"vendor\");if(scope?.variants)fields.push(\"variants\");return fields;}/**\n * @framerDisableUnlink\n */export default function FC_CatalogDisplay(props){// State declarations at the top of the component\nconst[isLoading,setIsLoading]=React.useState(true);const[sortedChildren,setSortedChildren]=React.useState(null);const[products,setProducts]=React.useState([]);const[favorites,setFavorites]=React.useState([]);const[isTransitioning,setIsTransitioning]=React.useState(false);const[isSettling,setIsSettling]=React.useState(false);// console.log(\"🚨🚨🚨 COMPONENT MOUNTED 🚨🚨🚨\", {\n//     hasCollection: !!props.Collection,\n//     hasProducts:\n//         typeof window !== \"undefined\" && !!window.shopXtools?.products,\n//     url: typeof window !== \"undefined\" ? window.location.href : null,\n// })\n// Keep a log of component initialization\nlogDebug(\"ProductSort\",\"Component initializing\",{props:Object.keys(props)});const{Collection,pageType,Metafields}=props;const includeMetafields=Metafields?.include||false;const transitionTimeoutRef=React.useRef(null);const settlingTimeoutRef=React.useRef(null);const lastUpdateRef=React.useRef(null);const urlParams=typeof window!==\"undefined\"?new URLSearchParams(window.location.search):new URLSearchParams;// Add pagination state\nconst[currentPage,setCurrentPage]=React.useState(()=>{if(typeof window!==\"undefined\"){const pageParam=urlParams.get(\"page\");return pageParam?parseInt(pageParam):1;}return 1;});const[hasMore,setHasMore]=React.useState(false);const observerRef=React.useRef(null);const loadMoreRef=React.useRef(null);const itemsPerPage=props.Pagination?.items||8;// Add state to maintain full product list\nconst[allProducts,setAllProducts]=React.useState([]);const[displayedProducts,setDisplayedProducts]=React.useState([]);// Add search state\nconst[searchConfig,setSearchConfig]=React.useState(()=>{// Initialize from URL parameter if it exists\nif(typeof window!==\"undefined\"){const urlParams=new URLSearchParams(window.location.search);const searchParam=urlParams.get(\"search\");// console.log(\"🔍 Initializing search from URL:\", {\n//     url: window.location.href,\n//     searchParam,\n//     allParams: Object.fromEntries(urlParams.entries()),\n// })\nif(searchParam){return{term:searchParam,fields:getActiveSearchFields(props.Search?.Scope),active:true};}}return{term:\"\",fields:getActiveSearchFields(props.Search?.Scope),active:false};});// Add effect to update search fields when scope changes\nReact.useEffect(()=>{setSearchConfig(prev=>({...prev,fields:getActiveSearchFields(props.Search?.Scope)}));},[props.Search?.Scope]);// Adjust initial state based on search settings\nReact.useEffect(()=>{if(props.Search.initialSearchState===\"none\"&&props.Search.enableSearch&&!searchConfig.term){// console.log(\"Applying initial 'none' state\")\nsetSortedChildren([])// Start with no products displayed\n;// Disable pagination buttons for both load more and next/prev types because there are no products to display\nsetTimeout(()=>{if(props.Pagination?.type===\"load_more\"){const hasMoreItemsEvent=new CustomEvent(\"hide-loadmore-button\",{detail:{hasMoreItems:false}});document.dispatchEvent(hasMoreItemsEvent);//console.log(\"hide-loadmore-button dispatched (delayed)\", hasMoreItemsEvent);\n}else if(props.Pagination?.type===\"next_prev\"){const updateNextPrevButtonsEvent=new CustomEvent(\"update_next_prev_buttons\",{detail:{hasMoreItems:false,type:props.Pagination?.type,currentPage:1}});document.dispatchEvent(updateNextPrevButtonsEvent);//console.log(\"update_next_prev_buttons dispatched (delayed)\", updateNextPrevButtonsEvent);\n}},100)// 100ms delay to ensure listeners are attached\n;}},[props.Search.initialSearchState,props.Search.enableSearch,searchConfig.term]);// Function to get paginated products\nconst getPaginatedProducts=React.useCallback(products=>{if(!props.Pagination?.enable||!Array.isArray(products))return products;let startIndex,endIndex,paginatedProducts;switch(props.Pagination.type){case\"load_more\":// For Load More, show all items up to current page\nstartIndex=0;endIndex=currentPage*itemsPerPage;paginatedProducts=products.slice(startIndex,endIndex);const hasMoreLoadMore=endIndex<products.length;setHasMore(hasMoreLoadMore);// console.log(\"hasMoreLoadMore\", hasMoreLoadMore)\n// console.log(\"products.length\", products?.length)\n// console.log(\"currentPage\", currentPage)\n// console.log(\"itemsPerPage\", itemsPerPage)\n// console.log(\"endIndex\", endIndex)\n// console.log(\"searchConfig.active\", searchConfig.active)\nif(!hasMoreLoadMore){const hasMoreItemsEvent=new CustomEvent(\"hide-loadmore-button\",{detail:{hasMoreItems:hasMoreLoadMore}});document.dispatchEvent(hasMoreItemsEvent);//console.log(\"hide-loadmore-button dispatched\", hasMoreItemsEvent)\n}break;case\"next_prev\":// For Next/Previous, show only current page items\nstartIndex=(currentPage-1)*itemsPerPage;endIndex=startIndex+itemsPerPage;paginatedProducts=products.slice(startIndex,endIndex);const hasMoreNextPrev=endIndex<products.length;setHasMore(hasMoreNextPrev);const updateNextPrevButtonsEvent=new CustomEvent(\"update_next_prev_buttons\",{detail:{hasMoreItems:hasMoreNextPrev,type:props.Pagination?.type,currentPage}});document.dispatchEvent(updateNextPrevButtonsEvent);break;case\"infinite\":// For Infinite Scroll, show all items up to current page\nstartIndex=0;endIndex=currentPage*itemsPerPage;paginatedProducts=products.slice(startIndex,endIndex);const hasMoreInfinite=endIndex<products.length;setHasMore(hasMoreInfinite);break;default:return products;}return paginatedProducts;},[currentPage,itemsPerPage,props.Pagination?.enable,props.Pagination?.type]);// Add effect to handle URL pagination parameters\nReact.useEffect(()=>{if(typeof window===\"undefined\"||!props.Pagination?.enable)return;const url=new URL(window.location.href);const urlParams=new URLSearchParams(url.search);// // Update page parameter\n// if (props.Pagination?.enable) {\n//     if (currentPage > 1) {\n//         urlParams.set(\"page\", currentPage.toString())\n//     } else {\n//         urlParams.delete(\"page\")\n//     }\n// } else {\n//     urlParams.delete(\"page\")\n// }\n// // Update URL without triggering a page reload\n// window.history.pushState(\n//     { page: currentPage },\n//     \"\",\n//     url.toString()\n// )\nif(currentPage>1){urlParams.set(\"page\",currentPage.toString());}else{urlParams.delete(\"page\");}const newUrl=`${url.pathname}?${urlParams.toString()}`;if(newUrl!==window.location.pathname+window.location.search){//console.log(\"📌 Pushing new page URL:\", newUrl)\nwindow.history.pushState({page:currentPage},\"\",newUrl);}},[currentPage,props.Pagination?.enable]);// Update the infinite scroll effect\nReact.useEffect(()=>{if(!props.Pagination?.enable||props.Pagination?.type!==\"infinite\"||typeof window===\"undefined\")return;console.log(\"[CMS] Setting up infinite scroll observer\",{hasMore,isLoading,currentPage,loadMoreRefExists:!!loadMoreRef.current});const observer=new IntersectionObserver(entries=>{const target=entries[0];console.log(\"[CMS] Intersection observed:\",{isIntersecting:target.isIntersecting,hasMore,isLoading,currentPage});if(target.isIntersecting&&hasMore&&!isLoading){console.log(\"[CMS] Loading more items, incrementing page\");setCurrentPage(prev=>prev+1);}},{root:null,rootMargin:\"100px\",threshold:.1});if(loadMoreRef.current){console.log(\"[CMS] Observing load more trigger element\");observer.observe(loadMoreRef.current);}return()=>{if(observer){console.log(\"[CMS] Cleaning up observer\");observer.disconnect();}};},[hasMore,props.Pagination?.enable,props.Pagination?.type,isLoading,currentPage]);// Update the sorted children wrapper to include the infinite scroll trigger\nconst updateSortedChildrenWithTransition=newChildren=>{if(!newChildren){console.warn(\"[CMS] Received null/undefined children\");return;}// console.log(\"[CMS] Starting transition update:\", {\n//     totalChildren: newChildren.length,\n//     currentPage,\n//     paginationType: props.Pagination?.type,\n//     hasMore,\n// })\n// Store the full list\nsetAllProducts(newChildren);// Get paginated subset for display\nconst paginatedChildren=getPaginatedProducts(newChildren);//console.log(\"[CMS] hasMore:\", hasMore)\n// Add infinite scroll trigger if needed\nif(props.Pagination?.enable&&props.Pagination?.type===\"infinite\"&&hasMore&&paginatedChildren.length>0){console.log(\"[CMS] Adding infinite scroll trigger\");paginatedChildren.push(/*#__PURE__*/_jsx(\"div\",{ref:loadMoreRef,style:{width:\"100%\",height:\"50px\",gridColumn:\"1 / -1\",opacity:0,pointerEvents:\"none\"}},\"infinite-scroll-trigger\"));}logDebug(\"ProductSort\",\"Updating sorted children with transition\",{totalChildren:newChildren.length,paginatedChildren:paginatedChildren.length,currentPage,isSettling,hasMore});const now=Date.now();if(lastUpdateRef.current&&now-lastUpdateRef.current<100){setIsSettling(true);if(settlingTimeoutRef.current){clearTimeout(settlingTimeoutRef.current);}//console.log(\"[CMS] Delaying transition\")\nsettlingTimeoutRef.current=setTimeout(()=>{setIsSettling(false);setDisplayedProducts(paginatedChildren);performTransition(paginatedChildren);},150);}else{//console.log(\"[CMS] Immediate transition\")\nsetDisplayedProducts(paginatedChildren);performTransition(paginatedChildren);}lastUpdateRef.current=now;};// Add logging for URL parameters\nif(typeof window!==\"undefined\"){logDebug(\"ProductSort\",\"URL parameters on init\",{url:window.location.href,params:Object.fromEntries(urlParams.entries())});}const[sortConfig,setSortConfig]=React.useState(()=>{// First try to get sort from URL parameter\nif(typeof window!==\"undefined\"){const urlParams=new URLSearchParams(window.location.search);const sortParam=urlParams.get(\"sort\");logDebug(\"ProductSort\",\"Sort parameter from URL\",{sortParam});if(sortParam){// Map URL sort parameter to internal sort configuration\nswitch(sortParam){case\"relevance\":return{type:\"relevancy\",sortBy:\"relevancy\",sortDirection:null};case\"title_asc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"aToZ\"};case\"title_desc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"zToA\"};case\"price_asc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"lowToHigh\"};case\"price_desc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"highToLow\"};case\"newest\":return{type:\"created\",sortBy:\"created\",sortDirection:\"newest\"};case\"best_selling\":return{type:\"best-selling\",sortBy:\"best-selling\",sortDirection:null};}}// Then check session storage\nconst storedSort=sessionStorage.getItem(\"sortBy\");if(storedSort){switch(storedSort){case\"relevance\":return{type:\"relevancy\",sortBy:\"relevancy\",sortDirection:null};case\"title_asc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"aToZ\"};case\"title_desc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"zToA\"};case\"price_asc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"lowToHigh\"};case\"price_desc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"highToLow\"};case\"newest\":return{type:\"created\",sortBy:\"created\",sortDirection:\"newest\"};case\"best_selling\":return{type:\"best-selling\",sortBy:\"best-selling\",sortDirection:null};}}}// If no URL parameter or session storage, use the default sort from props\nswitch(props.defaultSort){case\"relevance\":return{type:\"relevancy\",sortBy:\"relevancy\",sortDirection:null};case\"title_asc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"aToZ\"};case\"title_desc\":return{type:\"name\",sortBy:\"name\",sortDirection:\"zToA\"};case\"price_asc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"lowToHigh\"};case\"price_desc\":return{type:\"price\",sortBy:\"price\",sortDirection:\"highToLow\"};case\"newest\":return{type:\"created\",sortBy:\"created\",sortDirection:\"newest\"};case\"best_selling\":return{type:\"best-selling\",sortBy:\"best-selling\",sortDirection:null};default:return{type:\"relevancy\",sortBy:\"relevancy\",sortDirection:null};}});const[filters,setFilters]=React.useState(()=>{//console.log(\"props.display for scopes\", props.display)\n// Create the initial filter state based on props\nconst initialFilters={collection:{active:props.display===\"Collection\"&&props.value?true:false,values:props.display===\"Collection\"&&props.value?[props.value]:[]},product_type:{active:props.display===\"Product Type\"&&props.value?true:false,values:props.display===\"Product Type\"&&props.value?[props.value]:[]},product_tag:{active:props.display===\"Product Tag\"&&props.value?true:false,values:props.display===\"Product Tag\"&&props.value?[props.value]:[]},on_sale:{active:false,value:true},in_stock:{active:false,value:true},bundle:{active:false,value:true},subscription:{active:false,value:true},price:{active:false,values:[]},discount_amount:{active:false,values:[]},discount_percent:{active:false,values:[]},variant:{active:false,values:[]}};// Log the initial filter state\nlogDebug(\"ProductSort\",\"Initial filter state created\",{display:props.display,value:props.value,filters:initialFilters,activeFilters:Object.entries(initialFilters).filter(([key,filter])=>filter.active).reduce((acc,[key,filter])=>({...acc,[key]:filter}),{})});// First try to parse filters directly from URL\nif(typeof window!==\"undefined\"){const url=new URL(window.location.href);logDebug(\"ProductSort\",\"Attempting to parse filters from URL for scopes\",{url:url.toString(),search:url.search});try{const urlFilters=parseUrlFilters(url.searchParams);logDebug(\"ProductSort\",\"Filters parsed from URL for scopes\",urlFilters);if(urlFilters&&Object.keys(urlFilters).length>0){const activeFilters=Object.entries(urlFilters).filter(([key,filter])=>filter.active).reduce((acc,[key,filter])=>({...acc,[key]:filter}),{});logDebug(\"ProductSort\",\"Active filters from URL for scopes\",activeFilters);if(Object.keys(activeFilters).length>0){// Merge URL filters with initial scope instead of replacing them\nconst mergedFilters={...initialFilters};logDebug(\"ProductSort\",\"Merged filters from URL for scopes\",mergedFilters);// For each filter type that has an initial scope, ensure it's preserved\nif(props.display===\"Collection\"&&props.value){mergedFilters.collection={active:true,values:[props.value]};}else if(props.display===\"Product Type\"&&props.value){mergedFilters.product_type={active:true,values:[props.value]};}else if(props.display===\"Product Tag\"&&props.value){mergedFilters.product_tag={active:true,values:[props.value]};}// console.log(\"Props - Tag:\", {\n//     active:\n//         props.display === \"Product Tag\" && props.value\n//             ? true\n//             : false,\n//     values:\n//         props.display === \"Product Tag\" && props.value\n//             ? [props.value]\n//             : [],\n// })\n// console.log(\"Props:\", props.display)\n// Then apply URL filters for other filter types\nObject.entries(urlFilters).forEach(([key,filter])=>{if(key===\"collection\"&&props.display===\"Collection\"&&props.value||key===\"product_type\"&&props.display===\"Product Type\"&&props.value||key===\"product_tag\"&&props.display===\"Product Tag\"&&props.value){// Merge values for the scoped filter\nmergedFilters[key]={active:true,values:[...new Set([...mergedFilters[key].values,...filter.values||[]])]};}else{// For non-scoped filters, use the URL filter\nmergedFilters[key]=filter;}});logDebug(\"ProductSort\",\"Merged filters\",mergedFilters);return mergedFilters;}}}catch(error){console.error(\"❌ Error parsing URL filters:\",error);}}// If no URL filters or error, return the initial filters\nreturn initialFilters;});// Memoize event handlers\nconst handleProductsReady=React.useCallback(e=>{logDebug(\"ProductSort\",\"Products ready event received\",{eventType:e.type,shopXToolsAvailable:typeof window!==\"undefined\"&&!!window.shopXtools,shopXProductsCount:typeof window!==\"undefined\"?window.shopXtools?.products?.length:0});// First try to get products from shopXtools\nif(typeof window!==\"undefined\"&&window.shopXtools?.products){// console.log(\"🚨 Setting products from shopXtools 🚨\", {\n//     count: window.shopXtools.products.length,\n//     sample: window.shopXtools.products[0]?.node,\n//     sampleTitle:\n//         window.shopXtools.products[0]?.node?.title ||\n//         \"No title\",\n//     hasNode: !!window.shopXtools.products[0]?.node,\n//     searchConfig: searchConfig,\n//     searchActive: searchConfig.active,\n//     searchTerm: searchConfig.term,\n// })\n// Important: shopXtools.products is already in the correct format with node structure\nsetProducts(window.shopXtools.products);// After setting products, force a re-filter if search is active\nif(searchConfig.active&&searchConfig.term){// console.log(\n//     \"🔍 Active search detected during product load, forcing re-filter\"\n// )\nsetSortedChildren(null);}}else if(Array.isArray(e.detail.products)){// console.log(\"🚨 Setting products from event 🚨\", {\n//     count: e.detail.products.length,\n//     sample: e.detail.products[0],\n//     sampleTitle:\n//         e.detail.products[0]?.node?.title || \"No title\",\n//     hasNode: !!e.detail.products[0]?.node,\n//     searchConfig: searchConfig,\n//     searchActive: searchConfig.active,\n//     searchTerm: searchConfig.term,\n// })\nsetProducts(e.detail.products);// After setting products, force a re-filter if search is active\nif(searchConfig.active&&searchConfig.term){// console.log(\n//     \"🔍 Active search detected during product load, forcing re-filter\"\n// )\nsetSortedChildren(null);}}},[searchConfig]);const handleSortChange=React.useCallback(e=>{setSortConfig(e.detail);setSortedChildren(null)// Reset sorted children to trigger resort\n;},[]);const handleFilterReset=React.useCallback(e=>{// console.log(\"Resetting filters\", e)\n// Check if we should reset to initial scope\nconst shouldResetToInitialScope=e?.detail?.resetToInitialScope===true;// console.log(\n//     \"Should reset to initial scope:\",\n//     shouldResetToInitialScope\n// )\nif(shouldResetToInitialScope){// Create a reset state that respects the initial filter scope\nconst resetFilters={collection:{active:props.display===\"Collection\"&&props.value?true:false,values:props.display===\"Collection\"&&props.value?[props.value]:[]},product_type:{active:props.display===\"Product Type\"&&props.value?true:false,values:props.display===\"Product Type\"&&props.value?[props.value]:[]},product_tag:{active:props.display===\"Product Tag\"&&props.value?true:false,values:props.display===\"Product Tag\"&&props.value?[props.value]:[]},on_sale:{active:false,value:true},in_stock:{active:false,value:true},bundle:{active:false,value:true},subscription:{active:false,value:true},price:{active:false,values:[]},discount_amount:{active:false,values:[]},discount_percent:{active:false,values:[]},variant:{active:false,values:[]}};// console.log(\"Resetting to initial filter scope:\", resetFilters)\nsetFilters(resetFilters);}else{// Reset all filters to inactive\nsetFilters({collection:{active:false,values:[]},product_type:{active:false,values:[]},product_tag:{active:false,values:[]},on_sale:{active:false,value:true},in_stock:{active:false,value:true},bundle:{active:false,value:true},subscription:{active:false,value:true},price:{active:false,values:[]},discount_amount:{active:false,values:[]},discount_percent:{active:false,values:[]},variant:{active:false,values:[]}});}setSortedChildren(null)// Reset sorted children to trigger filter reset\n;},[props.display,props.value]);const handleFilter=React.useCallback(e=>{const{type,value,active}=e.detail;// console.log(\n//     \"Received filter event:\",\n//     e?.detail || \"Reset filter event is not receieved\"\n// )\nlogDebug(\"ProductSort\",\"Processing filter event\",{type:e.detail.type,group:e.detail.group,active:e.detail.active,value:e.detail.value,filterType:e.detail.filterType,componentId:e.detail.componentId});// Check if this filter matches the initial filter scope\nconst isInitialFilter=type===\"collection\"&&props.display===\"Collection\"&&props.value===value||type===\"product_type\"&&props.display===\"Product Type\"&&props.value===value||type===\"product_tag\"&&props.display===\"Product Tag\"&&props.value===value;// If this is the initial filter and we're trying to deactivate it, ignore the event\nif(isInitialFilter&&!active){// console.log(\"Ignoring deactivation of initial filter scope\")\nreturn;}// Continue with normal filter handling\nsetFilters(prev=>{const newFilters={...prev};const{type,group,active,value,filterType,variantStockFilter}=e.detail;// console.log(\"Processing filter:\", {\n//     type,\n//     group,\n//     active,\n//     value,\n//     filterType,\n//     variantStockFilter,\n// })\n// Log previous state of this filter\nlogDebug(\"ProductSort\",\"Filter state before update\",{filterType:type,previousState:prev[type]||\"not set\",newActive:active,newValue:value});// Use filterMappings to handle the filter\nif(type.startsWith(\"variant_\")){// Handle dynamic variant filters\nconst variantName=type.replace(\"variant_\",\"\");// Add more comprehensive debugging for variant filters\n// console.log(\"🚨 Processing variant filter:\", {\n//     type,\n//     variantName,\n//     active,\n//     variantStockFilter,\n//     value,\n//     isMultiValue:\n//         typeof value === \"string\" && value.includes(\",\"),\n//     multipleValues:\n//         typeof value === \"string\" && value.includes(\",\")\n//             ? value.split(\",\").filter(Boolean)\n//             : null,\n//     currentVariantValues:\n//         newFilters.variant?.values?.filter(\n//             (v) => v.name === variantName\n//         ) || [],\n//     rawValue: value,\n//     decodedValue:\n//         typeof value === \"string\"\n//             ? decodeURIComponent(value)\n//             : value,\n// })\nif(active){if(!newFilters.variant){newFilters.variant={active:true,values:[],variantStockFilter:variantStockFilter||undefined};}else if(variantStockFilter){newFilters.variant.variantStockFilter=variantStockFilter;}// Check if value is a comma-separated list - support both encoded and decoded commas\n// Both %2C and , should be treated as delimiters\nlet valueToProcess=value;if(typeof value===\"string\"){// First decode the value to handle any URL encoding\nvalueToProcess=decodeURIComponent(value);}if(typeof valueToProcess===\"string\"&&valueToProcess.includes(\",\")){// Handle multiple comma-separated values (OR condition)\nconst variantValues=valueToProcess.split(\",\").filter(Boolean);// console.log(\"Processing multiple variant values:\", {\n//     variantName,\n//     variantValues,\n//     original: valueToProcess,\n// })\n// Add each value as a separate entry\nvariantValues.forEach(val=>{// Check if this value already exists to avoid duplicates\nconst exists=newFilters.variant.values.some(v=>v.name.toLowerCase()===variantName.toLowerCase()&&v.value.toLowerCase()===val.trim().toLowerCase());if(!exists){newFilters.variant.values.push({name:variantName,value:val.trim()});}});}else{// Handle single value\n// Check if this value already exists\nconst exists=newFilters.variant.values.some(v=>v.name.toLowerCase()===variantName.toLowerCase()&&v.value.toLowerCase()===String(valueToProcess).toLowerCase());if(!exists){newFilters.variant.values.push({name:variantName,value:valueToProcess});}}newFilters.variant.active=true;}else{if(newFilters.variant&&newFilters.variant.values){// console.log(\n//     \"[Variant Removal] Initial variant values:\",\n//     newFilters.variant.values\n// )\n// Check if we're removing a comma-separated list - support both encoded and decoded commas\nlet valueToProcess=value;// console.log(\n//     \"[Variant Removal] Value to process\",\n//     valueToProcess\n// )\nif(typeof value===\"string\"){// First decode the value to handle any URL encoding\nvalueToProcess=decodeURIComponent(value);// console.log(\n//     \"[Variant Removal] Value to process (decoded)\",\n//     valueToProcess\n// )\n}if(typeof valueToProcess===\"string\"&&valueToProcess.includes(\",\")){const variantValues=valueToProcess.split(\",\").filter(Boolean);// console.log(\n//     \"[Variant Removal] Comma-separated variant values:\",\n//     variantValues\n// )\n// Remove each value individually (case-insensitive)\nnewFilters.variant.values=newFilters.variant.values.filter(v=>{const nameMatches=v.name.toLowerCase()===variantName.toLowerCase();const valueMatches=v.value.toLowerCase()===String(valueToProcess).toLowerCase();const shouldRemove=nameMatches&&valueMatches;// console.log(\n//     \"[Variant Removal] Checking variant:\",\n//     {\n//         variant: v,\n//         nameMatches,\n//         valueMatches,\n//         shouldRemove,\n//     }\n// )\nreturn!shouldRemove;});}else{// Remove single value (case-insensitive)\nnewFilters.variant.values=newFilters.variant.values.filter(v=>{const nameMatches=v.name.toLowerCase()===variantName.toLowerCase();const valueMatches=v.value.toLowerCase()===String(valueToProcess).toLowerCase();const shouldRemove=nameMatches&&valueMatches;// console.log(\n//     \"[Variant Removal] Checking variant:\",\n//     {\n//         variant: v,\n//         nameMatches,\n//         valueMatches,\n//         shouldRemove,\n//     }\n// )\nreturn!shouldRemove;});}// console.log(\n//     \"[Variant Removal] Updated variant values:\",\n//     newFilters.variant.values\n// )\nnewFilters.variant.active=newFilters.variant.values.length>0;// console.log(\n//     \"[Variant Removal] Variant active state:\",\n//     newFilters.variant.active\n// )\n}}}else{// Handle other filter types\nswitch(type){case\"product_type\":case\"product_tag\":case\"collection\":logDebug(\"ProductSort\",`Processing ${type} filter`,{active,value,currentValues:newFilters[type].values});if(active){newFilters[type].values=[...newFilters[type].values||[],value];}else{newFilters[type].values=newFilters[type].values.filter(v=>v!==value);}newFilters[type].active=newFilters[type].values.length>0;logDebug(\"ProductSort\",`${type} filter updated`,{newActive:newFilters[type].active,newValues:newFilters[type].values});break;case\"price\":if(active){// console.log(\n//     \"🏷️ Processing ACTIVE price filter:\",\n//     {\n//         currentPriceFilter:\n//             newFilters.price.values,\n//         incomingValue: value,\n//     }\n// )\nif(!newFilters.price){newFilters.price={active:active,values:[]};}// Always ensure active state is set when adding ranges\nnewFilters.price.active=active;const newRange=value?.values?.[0];if(newRange){// console.log(\n//     \"🎯 Processing new price range:\",\n//     {\n//         newRange,\n//         priceType: newRange.priceType,\n//         currentRanges:\n//             newFilters.price.values,\n//     }\n// )\n// Format the range based on priceType\nconst formattedRange={priceType:newRange.priceType,min:newRange.priceType===\"Under\"?null:newRange.min,max:newRange.priceType===\"Over\"?null:newRange.max};const rangeExists=newFilters.price.values.some(range=>range.priceType===formattedRange.priceType&&range.min===formattedRange.min&&range.max===formattedRange.max);if(!rangeExists){newFilters.price.values.push(formattedRange);// console.log(\n//     \"✅ Added new price range. Updated ranges:\",\n//     newFilters.price.values\n// )\n}}}else{// console.log(\n//     \"🏷️ Processing INACTIVE price filter:\",\n//     {\n//         currentPriceFilter: newFilters.price,\n//         incomingValue: value,\n//     }\n// )\nif(newFilters.price.active&&newFilters.price.values){// Loop through incoming values and remove them from current filters\nvalue.values?.forEach(valueRange=>{newFilters.price.values=newFilters.price.values.filter(currentRange=>{// Check if the current range matches the incoming range\nconst isMatchingRange=currentRange.priceType===valueRange.priceType&&currentRange.min===valueRange.min&&currentRange.max===valueRange.max;return!isMatchingRange// Remove only the matching range\n;});});}// Update the active state based on remaining ranges\nnewFilters.price.active=newFilters.price.values.length>0;}break;case\"discount_amount\":case\"discount_percent\":const discountType=type;if(!newFilters[discountType]){newFilters[discountType]={active:false,values:[]};}if(active){// Add new discount range\nnewFilters[discountType].values.push(...value.values);}else{// Remove discount range\nnewFilters[discountType].values=newFilters[discountType].values.filter(range=>!value.values.some(v=>v.min===range.min&&v.max===range.max));}// Update active state\nnewFilters[discountType].active=newFilters[discountType].values.length>0;break;case\"on_sale\":case\"in_stock\":case\"bundle\":case\"subscription\":newFilters[type]={active:active,value:true};break;default:console.warn(\"Unhandled filter type:\",type);}}logDebug(\"ProductSort\",\"Updated filters\",{filterType:type,newFilterState:newFilters[type],allActiveFilters:Object.entries(newFilters).filter(([key,filter])=>filter.active).reduce((acc,[key,filter])=>({...acc,[key]:filter}),{})});return newFilters;});// Force reset sorted children to trigger re-filter and re-sort\nlogDebug(\"ProductSort\",\"Resetting sorted children to trigger re-filtering\",null);setSortedChildren(null);},[props.display,props.value]);// Add a new handler for search events\nconst handleSearch=React.useCallback(e=>{// Only process search if it's enabled\nif(!props.Search?.enableSearch){return;}setSearchConfig({term:e.detail.term,fields:getActiveSearchFields(props.Search?.Scope),active:!!e.detail.term});setSortedChildren(null);},[props.Search?.enableSearch,props.Search?.Scope]);// Load favorites from localStorage\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const loadFavorites=()=>{const storedFavorites=JSON.parse(localStorage.getItem(\"favorites\")||\"[]\");// console.log(\"Loaded favorites:\", storedFavorites)\nsetFavorites(storedFavorites);};loadFavorites();const handleFavoritesUpdate=e=>{// console.log(\"favorites_updated event\", e.detail)\nconst{favorites:newFavorites,action,productId}=e.detail||{};// Set isTransitioning early to prevent flash\nif(pageType===\"favorites\"&&action===\"remove\"){setIsTransitioning(true);}if(action===\"remove\"&&productId){// console.log(\"Removing from favorites:\", productId)\nsetFavorites(prev=>{const updatedFavorites=prev.filter(id=>id!==productId);// Only retrigger UI if we're in favorites display mode\nif(pageType===\"favorites\"){// If we have sorted children already, prepare for a smoother transition\nif(sortedChildren&&sortedChildren.length>0){// Filter out the removed product from current view without setting to null\nconst updatedChildren=sortedChildren.filter(child=>{const key=child.key||\"\";return key!==productId;});if(updatedChildren.length>0){performTransition(updatedChildren);}else{// If all items removed, then do a full reset\nsetSortedChildren(null);}}else{setSortedChildren(null);}}return updatedFavorites;});}else if(action===\"add\"&&productId){// console.log(\"Adding to favorites:\", productId)\nsetFavorites(prev=>{const updatedFavorites=[...prev,productId];// Only retrigger UI if we're in favorites display mode\nif(pageType===\"favorites\"){setSortedChildren(null);}return updatedFavorites;});}else{//(\"Loading favorites with loadFavorites\")\nloadFavorites();// Only retrigger UI if we're in favorites display mode\nif(pageType===\"favorites\"){setSortedChildren(null);}}};document.addEventListener(\"favorites-updated\",handleFavoritesUpdate);return()=>{document.removeEventListener(\"favorites-updated\",handleFavoritesUpdate);};},[pageType,sortedChildren]);// Use global state management for event listeners\nReact.useEffect(()=>{// console.log(\"🚨 Setting up event listeners 🚨\", {\n//     hasShopXTools: typeof window !== \"undefined\" && !!window.shopXtools,\n//     hasProducts:\n//         typeof window !== \"undefined\" && !!window.shopXtools?.products,\n//     productsCount:\n//         typeof window !== \"undefined\"\n//             ? window.shopXtools?.products?.length\n//             : 0,\n// })\n// Use global state management\nglobalSortState.instances.add(\"FC_CatalogDisplay\");// Add event listeners with proper typing\nconst handleProductsReadyEvent=e=>{// console.log(\"🚨 Received data__products-ready event 🚨\", {\n//     hasEventDetail: !!e,\n//     hasProducts: !!(e as any).detail?.products,\n//     productsCount: (e as any).detail?.products?.length || 0,\n// })\nconst customEvent=e;logDebug(\"ProductSort\",\"data__products-ready event received\",{hasProducts:!!customEvent.detail?.products,count:customEvent.detail?.products?.length||0});handleProductsReady(customEvent);};const handleSortChangeEvent=e=>{const customEvent=e;logDebug(\"ProductSort\",\"product-sort-change event received\",customEvent.detail);handleSortChange(customEvent);};const handleFilterResetEvent=e=>{const customEvent=e;logDebug(\"ProductSort\",\"filter-reset for reset event received\",customEvent.detail);handleFilterReset(customEvent);};const handleFilterChangeEvent=e=>{const customEvent=e;logDebug(\"ProductSort\",\"product-filter-change event received\",customEvent.detail);handleFilter(customEvent);};const handleSearchChangeEvent=e=>{const customEvent=e;logDebug(\"ProductSort\",\"product-search-change event received\",customEvent.detail);handleSearch(customEvent);};document.addEventListener(\"filter-reset\",handleFilterResetEvent);document.addEventListener(\"data__products-ready\",handleProductsReadyEvent);document.addEventListener(\"product-sort-change\",handleSortChangeEvent);document.addEventListener(\"product-filter-change\",handleFilterChangeEvent);document.addEventListener(\"product-search-change\",handleSearchChangeEvent);// Cleanup\nreturn()=>{globalSortState.instances.delete(\"FC_CatalogDisplay\");document.removeEventListener(\"data__products-ready\",handleProductsReadyEvent);document.removeEventListener(\"product-sort-change\",handleSortChangeEvent);document.removeEventListener(\"product-filter-change\",handleFilterChangeEvent);document.removeEventListener(\"product-search-change\",handleSearchChangeEvent);document.removeEventListener(\"filter-reset\",handleFilterReset);logDebug(\"ProductSort\",\"Event listeners cleaned up\",null);};},[handleProductsReady,handleSortChange,handleFilter,handleSearch,handleFilterReset]);// At the top of your component, add this debug log\nReact.useEffect(()=>{if(products.length>0){// console.log(\"Products data structure:\", {\n//     totalProducts: products.length,\n//     sampleProduct: products[0]?.node,\n//     allFields: products[0]?.node\n//         ? Object.keys(products[0].node)\n//         : [],\n//     allProductTypes: products\n//         .slice(0, 10)\n//         .map((p) => p.node?.productType), // Log first 10 product types\n//     activeFilters: Object.entries(filters)\n//         .filter(([key, filter]: [string, any]) => filter.active)\n//         .reduce(\n//             (acc, [key, filter]: [string, any]) => ({\n//                 ...acc,\n//                 [key]: filter,\n//             }),\n//             {}\n//         ),\n// })\n// Log a specific check for the filter value\nif(filters.product_type?.active){const filterValues=filters.product_type.values;const matchingProducts=products.filter(p=>{const productType=p.node?.productType;if(!productType)return false;return filterValues.some(filterValue=>productType.toLowerCase().includes(filterValue.toLowerCase()));});// console.log(\"Filter match check:\", {\n//     filterValues: filterValues,\n//     totalProducts: products.length,\n//     matchingProductsCount: matchingProducts.length,\n//     sampleMatches: matchingProducts.slice(0, 3).map((p) => ({\n//         title: p.node?.title,\n//         productType: p.node?.productType,\n//     })),\n// })\n}}},[products]);// At the top of your component, add this debug log\n// React.useEffect(() => {\n//     if (products.length > 0) {\n//         console.log(\"🔍 Debugging Product Structure:\", {\n//             firstProduct: products[0]?.node,\n//             hasSellingPlanGroups:\n//                 products[0]?.node?.sellingPlanGroups?.edges?.length > 0,\n//             variants: products[0]?.node?.variants?.edges?.map((edge) => ({\n//                 title: edge.node.title,\n//                 hasSellingPlans:\n//                     edge.node.sellingPlanAllocations?.edges?.length > 0,\n//                 sellingPlans: edge.node.sellingPlanAllocations?.edges,\n//             })),\n//         })\n//     }\n// }, [products])\n// Helper to get product details\nconst getProductDetails=React.useCallback(productId=>{logDebug(\"ProductSort\",\"Looking up product details\",{searchingForId:productId,fullId:`gid://shopify/Product/${productId}`,productsCount:products.length,usingShopXTools:typeof window!==\"undefined\"&&!!window.shopXtools});const fullId=`gid://shopify/Product/${productId}`;let product;// First try to find product in shopXtools\nif(typeof window!==\"undefined\"&&window.shopXtools?.products){product=window.shopXtools.products.find(({node})=>node.id===fullId)?.node;if(product){logDebug(\"ProductSort\",\"Found product in shopXtools\",{id:product.id,title:product.title});}}// Fall back to products state if not found in shopXtools\nif(!product){product=products.find(({node})=>node.id===fullId)?.node;}if(product){logDebug(\"ProductSort\",\"Raw product data found\",{id:product.id,title:product.title,rawProductType:product.productType,rawTags:product.tags,rawCollections:product.collections,fromShopXTools:!!window.shopXtools});return{id:product.id,title:product.title||\"\",price:product.priceRange?.minVariantPrice?.amount?parseFloat(product.priceRange.minVariantPrice.amount):0,productType:product.productType||\"\",tags:product.tags||[],compareAtPrice:product.compareAtPriceRange?.minVariantPrice?.amount?parseFloat(product.compareAtPriceRange.minVariantPrice.amount):0,isOnSale:product.compareAtPriceRange?.minVariantPrice?.amount?parseFloat(product.compareAtPriceRange.minVariantPrice.amount)>parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\"):false,collections:Array.isArray(product.collections)?product.collections.map(c=>c.title):[],options:product.options||[],variants:product.variants?.edges||[],sellingPlanGroups:product.sellingPlanGroups?.edges||[],hasProductLevelPlans:product.sellingPlanGroups?.edges?.length>0,hasVariantLevelPlans:product.variants?.edges?.some(edge=>edge.node.sellingPlanAllocations?.edges?.length>0)};}logDebug(\"ProductSort\",\"Product not found in any source\",{searchId:productId});return{id:\"\",title:\"\",price:0,productType:\"\",tags:[],compareAtPrice:0,isOnSale:false,collections:[],options:[],variants:[],sellingPlanGroups:[],hasProductLevelPlans:false,hasVariantLevelPlans:false};},[products]);// Helper function to perform the actual transition\nconst performTransition=newChildren=>{logDebug(\"ProductSort\",\"Performing transition\",{childrenCount:newChildren?newChildren.length:0});if(transitionTimeoutRef.current){clearTimeout(transitionTimeoutRef.current);}setIsTransitioning(true);// Directly set sorted children without fade out\nsetSortedChildren(newChildren);setTimeout(()=>{setIsTransitioning(false);setIsSettling(false);},200)// Fade in duration\n;};// Cleanup timeouts\nReact.useEffect(()=>{return()=>{if(transitionTimeoutRef.current){clearTimeout(transitionTimeoutRef.current);}if(settlingTimeoutRef.current){clearTimeout(settlingTimeoutRef.current);}};},[]);// Add a debug log to show which filters are active when filtering products\n// After the getProductDetails function, add this useEffect for debugging\n// React.useEffect(() => {\n//     console.log(\n//         \"Active filters:\",\n//         Object.entries(filters)\n//             .filter(([key, filter]: [string, any]) => filter.active)\n//             .reduce(\n//                 (acc, [key, filter]: [string, any]) => ({\n//                     ...acc,\n//                     [key]: filter,\n//                 }),\n//                 {}\n//             )\n//     )\n// }, [filters])\n// Add this function to check if a product matches the filters\nconst productMatchesFilters=React.useCallback(product=>{/**\n             * Determines if a product matches all active filters\n             * Returns details about which filters matched or failed\n             */const filterResults={};// Log active filters at the beginning\nconst activeFilters={search:searchConfig.active?{term:searchConfig.term,fields:searchConfig.fields}:null,collection:filters.collection?.active?{values:filters.collection.values}:null,product_type:filters.product_type?.active?{values:filters.product_type.values}:null,product_tag:filters.product_tag?.active?{values:filters.product_tag.values}:null,price:filters.price?.active?{values:filters.price.values}:null,on_sale:filters.on_sale?.active||null,in_stock:filters.in_stock?.active||null,bundle:filters.bundle?.active||null,subscription:filters.subscription?.active||null,variant:filters.variant?.active?{values:filters.variant.values}:null,discount_amount:filters.discount_amount?.active?{values:filters.discount_amount.values}:null,discount_percent:filters.discount_percent?.active?{values:filters.discount_percent.values}:null};// console.log(\"Active filters (line 1128):\", activeFilters)\n// Only log if we have any active filters\nif(Object.values(activeFilters).some(v=>v!==null)){// console.log(\n//     `🔍 FILTERING PRODUCT \"${product.title}\" with active filters:`,\n//     Object.fromEntries(\n//         Object.entries(activeFilters).filter(\n//             ([_, v]) => v !== null\n//         )\n//     )\n// )\n}// ---- SEARCH TERM FILTER ----\nif(searchConfig.active&&searchConfig.term&&props.Search?.enableSearch){const searchTerm=searchConfig.term.toLowerCase();let matches=false;// Add debug log for search filtering\n// console.log(\"🔍 FILTERING PRODUCT by search term\", {\n//     productTitle: product.title,\n//     searchTerm: searchTerm,\n//     searchFields: searchConfig.fields,\n//     searchConfig: searchConfig\n// })\n// Map search fields to shopX product structure\nfor(const field of searchConfig.fields){// console.log(`🔍 Checking search field:`, {\n//     field,\n//     searchTerm,\n//     productTitle: product.title\n// });\nswitch(field){case\"variants\":// Search through variant values with proper null checks\nif(product?.variants?.edges&&Array.isArray(product.variants.edges))try{// First check variant colors\nconst variantMatches=product.variants.edges.some(edge=>{if(!edge?.node?.selectedOptions||!Array.isArray(edge.node.selectedOptions)){return false;}return edge.node.selectedOptions.some(option=>{return option?.value&&typeof option.value===\"string\"&&option.value.toLowerCase().includes(searchTerm);});});// Search all custom.fc_* metafields for the search term\nlet metafieldMatches=false;if(includeMetafields&&product?.metafields&&Array.isArray(product.metafields)){metafieldMatches=product.metafields.some(mf=>{if(mf&&mf.namespace===\"custom\"&&mf.key.startsWith(\"fc_\")&&typeof mf.value===\"string\"){let values=[];try{const parsed=JSON.parse(mf.value);if(Array.isArray(parsed)){values=parsed.map(v=>v.toLowerCase());}else if(typeof parsed===\"string\"){values=[parsed.toLowerCase()];}}catch{values=[mf.value.toLowerCase()];}return values.some(val=>val.includes(searchTerm));}return false;});}matches=matches||variantMatches||metafieldMatches;if(matches){// console.log(`🎯 Final match found for \"${product.title}\"`, {\n//     variantMatches,\n//     metafieldMatches\n// })\n}}catch(error){console.error(\"Error searching variants and custom color:\",error);return false;}break;case\"title\":// Product title is directly accessible on the product object\nif(product.title){const titleMatches=product.title.toLowerCase().includes(searchTerm);if(titleMatches){// Only log matches to reduce console noise\nconsole.log(`🎯 Title match: \"${product.title}\" includes \"${searchTerm}\"`);}matches=matches||titleMatches;}else{// console.log(\n//     `⚠️ Product has no title property:`,\n//     product\n// )\n}break;case\"productType\":// Product type is under productType\nif(product.productType){const typeMatches=product.productType.toLowerCase().includes(searchTerm);if(typeMatches){// console.log(\n//     `🎯 Product Type match: \"${product.productType}\" includes \"${searchTerm}\"`\n// )\n}matches=matches||typeMatches;}break;case\"tags\":// Tags are in an array\nif(Array.isArray(product.tags)){const tagMatches=product.tags.some(tag=>tag&&tag.toLowerCase().includes(searchTerm));if(tagMatches){// console.log(\n//     `🎯 Tag match: \"${product.tags.join(\", \")}\" includes \"${searchTerm}\"`\n// )\n}matches=matches||tagMatches;}break;case\"collections\":// Collections are in an array\nif(Array.isArray(product.collections)){const collectionMatches=product.collections.some(collection=>{const collectionTitle=collection?.title||collection;return typeof collectionTitle===\"string\"&&collectionTitle.toLowerCase().includes(searchTerm);});if(collectionMatches){// console.log(\n//     `🎯 Collection match: \"${product.collections\n//         .map((c) => c?.title || c)\n//         .filter(Boolean)\n//         .join(\n//             \", \"\n//         )}\" includes \"${searchTerm}\"`\n// )\n}matches=matches||collectionMatches;}break;case\"vendor\":// Vendor is under product.vendor\nif(product.vendor){const vendorMatches=product.vendor.toLowerCase().includes(searchTerm);if(vendorMatches){// console.log(\n//     `🎯 Vendor match: \"${product.vendor}\" includes \"${searchTerm}\"`\n// )\n}matches=matches||vendorMatches;}break;}// If we found a match, no need to check other fields\nif(matches)break;}filterResults.search={active:true,term:searchConfig.term,matches};// If search is active but we don't match, return early\nif(!matches){return{matches:false,filterResults};}}// ----- COLLECTION FILTER -----\nif(filters.collection?.active&&filters.collection.values?.length>0){const collectionValues=filters.collection.values;let matches=false;// Get the collection titles from the new nested structure\nconst productCollections=product.collections.map(collection=>collection.node?.title||collection.node?.handle||collection);// Use OR logic (some) for collections if not scoped to collections\n// Use AND logic (every) only if scoped to collections\nif(props.display===\"Collection\"){matches=collectionValues.every(collectionValue=>productCollections.includes(collectionValue));}else{matches=collectionValues.some(collectionValue=>productCollections.includes(collectionValue));}filterResults.collection={active:true,values:collectionValues,matches};if(!matches){return{matches:false,filterResults};}}// ----- PRODUCT TYPE FILTER -----\nif(filters.product_type?.active&&filters.product_type.values?.length>0){const productTypeValues=filters.product_type.values;let matches=false;if(product.productType){// Use OR logic (some) for product types if not scoped to product types\n// Use AND logic (every) only if scoped to product types\nif(props.display===\"Product Type\"){matches=productTypeValues.every(type=>product.productType.toLowerCase().includes(type.toLowerCase()));}else{matches=productTypeValues.some(type=>product.productType.toLowerCase().includes(type.toLowerCase()));}}filterResults.product_type={active:true,values:productTypeValues,matches};if(!matches){return{matches:false,filterResults};}}// ----- PRODUCT TAG FILTER -----\nif(filters.product_tag?.active&&filters.product_tag.values?.length>0){const tagValues=filters.product_tag.values;let matches=false;if(Array.isArray(product.tags)){// Use OR logic (some) for tags if not scoped to tags\n// Use AND logic (every) only if scoped to tags\nif(props.display===\"Product Tag\"){matches=tagValues.every(tagValue=>product.tags.some(tag=>tag.toLowerCase().includes(tagValue.toLowerCase())));}else{matches=tagValues.some(tagValue=>product.tags.some(tag=>tag.toLowerCase().includes(tagValue.toLowerCase())));}}filterResults.product_tag={active:true,values:tagValues,matches};if(!matches){return{matches:false,filterResults};}}// ----- PRICE FILTER -----\nif(filters.price?.active&&filters.price.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");let matches=false;// Check if product matches any of the active price ranges\nmatches=filters.price.values.some(range=>{if(range.min===null){// Handle \"Under\" price range\nreturn productPrice<=range.max;}else if(range.max===null){// Handle \"Over\" price range\nreturn productPrice>=range.min;}else{// Handle regular price range\nreturn productPrice>=range.min&&productPrice<=range.max;}});filterResults.price={active:true,values:filters.price.values,productPrice,matches};if(!matches){return{matches:false,filterResults};}}// ----- DISCOUNT FILTER -----\nif(filters.discount_amount?.active&&filters.discount_amount.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountAmount=compareAtPrice>productPrice?compareAtPrice-productPrice:0;let matches=false;// console.log(\"🔍 Checking discount amount:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountAmount,\n//     ranges: filters.discount_amount.values,\n// })\n// Check if product matches any of the active discount ranges\nmatches=filters.discount_amount.values.some(range=>{if(range.min===null){// Handle \"Under\" discount range\nreturn discountAmount<=range.max;}else if(range.max===null){// Handle \"Over\" discount range\nreturn discountAmount>=range.min;}else{// Handle regular discount range\nreturn discountAmount>=range.min&&discountAmount<=range.max;}});filterResults.discount_amount={active:true,values:filters.discount_amount.values,discountAmount,matches};if(!matches){return{matches:false,filterResults};}}if(filters.discount_percent?.active&&filters.discount_percent.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountPercent=compareAtPrice>productPrice?(compareAtPrice-productPrice)/compareAtPrice*100:0;let matches=false;// console.log(\"🔍 Checking discount percent:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountPercent,\n//     ranges: filters.discount_percent.values,\n// })\n// Check if product matches any of the active discount percentage ranges\nmatches=filters.discount_percent.values.some(range=>{if(range.min===null){// Handle \"Under\" discount percentage range\nreturn discountPercent<=range.max;}else if(range.max===null){// Handle \"Over\" discount percentage range\nreturn discountPercent>=range.min;}else{// Handle regular discount percentage range\nreturn discountPercent>=range.min&&discountPercent<=range.max;}});filterResults.discount_percent={active:true,values:filters.discount_percent.values,discountPercent,matches};if(!matches){return{matches:false,filterResults};}}// ----- DISCOUNT FILTER -----\nif(filters.discount_amount?.active&&filters.discount_amount.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountAmount=compareAtPrice>productPrice?compareAtPrice-productPrice:0;let matches=false;// console.log(\"🔍 Checking discount amount:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountAmount,\n//     ranges: filters.discount_amount.values,\n// })\n// Check if product matches any of the active discount ranges\nmatches=filters.discount_amount.values.some(range=>{if(range.min===null){// Handle \"Under\" discount range\nreturn discountAmount<=range.max;}else if(range.max===null){// Handle \"Over\" discount range\nreturn discountAmount>=range.min;}else{// Handle regular discount range\nreturn discountAmount>=range.min&&discountAmount<=range.max;}});filterResults.discount_amount={active:true,values:filters.discount_amount.values,discountAmount,matches};if(!matches){return{matches:false,filterResults};}}if(filters.discount_percent?.active&&filters.discount_percent.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountPercent=compareAtPrice>productPrice?(compareAtPrice-productPrice)/compareAtPrice*100:0;let matches=false;// console.log(\"🔍 Checking discount percent:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountPercent,\n//     ranges: filters.discount_percent.values,\n// })\n// Check if product matches any of the active discount percentage ranges\nmatches=filters.discount_percent.values.some(range=>{if(range.min===null){// Handle \"Under\" discount percentage range\nreturn discountPercent<=range.max;}else if(range.max===null){// Handle \"Over\" discount percentage range\nreturn discountPercent>=range.min;}else{// Handle regular discount percentage range\nreturn discountPercent>=range.min&&discountPercent<=range.max;}});filterResults.discount_percent={active:true,values:filters.discount_percent.values,discountPercent,matches};if(!matches){return{matches:false,filterResults};}}// ----- DISCOUNT FILTER -----\nif(filters.discount_amount?.active&&filters.discount_amount.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountAmount=compareAtPrice>productPrice?compareAtPrice-productPrice:0;let matches=false;// console.log(\"🔍 Checking discount amount:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountAmount,\n//     ranges: filters.discount_amount.values,\n// })\n// Check if product matches any of the active discount ranges\nmatches=filters.discount_amount.values.some(range=>{if(range.min===null){// Handle \"Under\" discount range\nreturn discountAmount<=range.max;}else if(range.max===null){// Handle \"Over\" discount range\nreturn discountAmount>=range.min;}else{// Handle regular discount range\nreturn discountAmount>=range.min&&discountAmount<=range.max;}});filterResults.discount_amount={active:true,values:filters.discount_amount.values,discountAmount,matches};if(!matches){return{matches:false,filterResults};}}if(filters.discount_percent?.active&&filters.discount_percent.values?.length>0){const productPrice=parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const compareAtPrice=parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount||\"0\");const discountPercent=compareAtPrice>productPrice?(compareAtPrice-productPrice)/compareAtPrice*100:0;let matches=false;// console.log(\"🔍 Checking discount percent:\", {\n//     productPrice,\n//     compareAtPrice,\n//     discountPercent,\n//     ranges: filters.discount_percent.values,\n// })\n// Check if product matches any of the active discount percentage ranges\nmatches=filters.discount_percent.values.some(range=>{if(range.min===null){// Handle \"Under\" discount percentage range\nreturn discountPercent<=range.max;}else if(range.max===null){// Handle \"Over\" discount percentage range\nreturn discountPercent>=range.min;}else{// Handle regular discount percentage range\nreturn discountPercent>=range.min&&discountPercent<=range.max;}});filterResults.discount_percent={active:true,values:filters.discount_percent.values,discountPercent,matches};if(!matches){return{matches:false,filterResults};}}// ----- ON SALE FILTER -----\nif(filters.on_sale?.active){let matches=false;if(product.compareAtPriceRange?.minVariantPrice?.amount&&product.priceRange?.minVariantPrice?.amount){const comparePrice=parseFloat(product.compareAtPriceRange.minVariantPrice.amount);const price=parseFloat(product.priceRange.minVariantPrice.amount);matches=comparePrice>price;}filterResults.on_sale={active:true,matches};if(!matches){return{matches:false,filterResults};}}// ----- IN STOCK FILTER -----\nif(filters.in_stock?.active){let matches=false;// Check if any variant is available for sale\nif(product.variants?.edges?.some(edge=>edge.node.availableForSale)){matches=true;}filterResults.in_stock={active:true,matches};if(!matches){return{matches:false,filterResults};}}// ----- SUBSCRIPTION FILTER -----\nif(filters.subscription?.active){let matches=false;const sellingPlanGroups=product.sellingPlanGroups?.edges||[];// Check if the product has subscription plans\nif(sellingPlanGroups&&product.sellingPlanGroups?.edges?.length>0){matches=true;}// Check for variant-level subscription plans\nif(product.variants?.edges?.some(edge=>edge.node.sellingPlanAllocations?.edges?.length>0)){matches=true;}filterResults.subscription={active:true,matches};// console.log(\n//     \"filterResults.subscription\",\n//     filterResults.subscription\n// )\nif(!matches){return{matches:false,filterResults};}}// ----- VARIANT FILTER -----\nif(filters.variant?.active&&filters.variant.values?.length>0){const variantFilters=filters.variant.values;let matches=false;// Check if any variant matches the filter criteria\nif(product.variants?.edges){// Add detailed logging for variant filtering\n// console.log(\n//     `🔍 VARIANT FILTERING: Checking product \"${product.title}\" variants against filter:`,\n//     {\n//         filterCriteria: variantFilters.map((filter) => ({\n//             name: filter.name,\n//             value: filter.value,\n//         })),\n//         hasVariants: product.variants.edges.length > 0,\n//         variantCount: product.variants.edges.length,\n//     }\n// )\n// First check variant options\nmatches=product.variants.edges.some(edge=>{const variant=edge.node;if(!variant.selectedOptions){// console.log(\n//     `⚠️ Variant has no selectedOptions:`,\n//     variant\n// )\nreturn false;}// Optional stock filter for variant match\nconst shouldCheckStock=filters.variant?.variantStockFilter===\"in_stock\";const isAvailable=variant.availableForSale;if(shouldCheckStock&&!isAvailable){return false// Skip this variant if it's not available\n;}// Log variant options for debugging\n// console.log(`👉 Checking variant:`, {\n//     variantOptions: variant.selectedOptions.map(\n//         (opt) => `${opt.name}: ${opt.value}`\n//     ),\n//     filterValues: variantFilters.map(\n//         (f) => `${f.name}: ${f.value}`\n//     ),\n// })\n// Group filters by variant name (e.g., Color, Size)\n// For OR logic within same variant type, we need to group filters by name\nconst variantFiltersByName={};variantFilters.forEach(filter=>{if(!variantFiltersByName[filter.name]){variantFiltersByName[filter.name]=[];}variantFiltersByName[filter.name].push(filter.value);});// Log grouped filters\n// console.log(\n//     `🔍 Grouped variant filters:`,\n//     variantFiltersByName\n// )\n// A variant matches if it satisfies at least one value from each variant type\n// (AND between different variant types, OR between values of same type)\nconst matchesByType=Object.entries(variantFiltersByName).map(([name,values])=>{// Find the option that matches the filter name\nconst matchingOption=variant.selectedOptions.find(option=>option.name.toLowerCase()===name.toLowerCase());if(!matchingOption){// console.log(\n//     `❌ No matching option found for ${name}`\n// )\nreturn false;}// Check if the option value matches any of the filter values (case-insensitive)\nconst valueMatches=values.some(value=>matchingOption.value.toLowerCase()===value.toLowerCase());// console.log(\n//     `${valueMatches ? \"✅\" : \"❌\"} ${name} = ${matchingOption.value}`,\n//     {\n//         acceptableValues: values,\n//         matches: valueMatches,\n//     }\n// )\nreturn valueMatches;});// True if ALL filter types have at least one matching value\nconst allTypesMatch=matchesByType.every(matches=>matches);// console.log(\n//     `${allTypesMatch ? \"✅\" : \"❌\"} Overall match result: ${allTypesMatch}`\n// )\nreturn allTypesMatch;});// If no variant matches and we're looking for a color, check custom metadata\nif(includeMetafields&&product.metafields&&Array.isArray(product.metafields)){variantFilters.forEach(filter=>{const metafieldKey=`fc_${filter.name.toLowerCase()}`;const metafield=product.metafields.find(mf=>mf&&mf.namespace===\"custom\"&&mf.key===metafieldKey&&typeof mf.value===\"string\");if(metafield){let values=[];try{// Try to parse as JSON array\nconst parsed=JSON.parse(metafield.value);if(Array.isArray(parsed)){values=parsed.map(v=>v.toLowerCase());}else if(typeof parsed===\"string\"){values=[parsed.toLowerCase()];}}catch{// If not JSON, treat as a single string value\nvalues=[metafield.value.toLowerCase()];}if(values.length>0&&filter.value){if(values.includes(filter.value.toLowerCase())){matches=true;}}}});}}filterResults.variant={active:true,values:variantFilters,matches};if(!matches){return{matches:false,filterResults};}}// Log final result\nconsole.log(`🔍 FILTER RESULT for \"${product.title}\": ${JSON.stringify({matches:true,filterResults})}`);// All tests passed\nreturn{matches:true,filterResults};},[filters,searchConfig]);// Add this after the handleFilter useCallback\nReact.useEffect(()=>{// console.log(\"🚨 Search state 🚨\", {\n//     sortedChildren: sortedChildren,\n//     sortedChildrenCount: sortedChildren ? sortedChildren.length : 0,\n//     searchConfig: searchConfig,\n//     paginationType: props.Pagination.type,\n//     enableSearch: props.Search.enableSearch,\n//     initialSearchState: props.Search.initialSearchState,\n// })\n// Dispatch product-search-results event when filtered products change\nif(sortedChildren&&searchConfig.active||!searchConfig.active){const shouldShowCustomInitial=props.Search?.enableSearch&&props.Search?.initialSearchState===\"custom\"&&!searchConfig.term;const searchResultsEvent=new CustomEvent(\"product-search-results\",{detail:{count:shouldShowCustomInitial?0:sortedChildren?sortedChildren.length:products.length,term:searchConfig.term||\"\"}});document.dispatchEvent(searchResultsEvent);//console.log(\"product-search-results dispatched\", searchResultsEvent);\nconst hasMoreLoadMore=sortedChildren?.length>0;setHasMore(hasMoreLoadMore);if(props.Pagination.type===\"load_more\"){const hasMoreItemsEvent=new CustomEvent(\"hide-loadmore-button\",{detail:{hasMoreItems:hasMoreLoadMore}});document.dispatchEvent(hasMoreItemsEvent);console.log(\"hide-loadmore-button dispatched\",hasMoreItemsEvent);}if(props.Pagination.type===\"next_prev\"){const updateNextPrevButtonsEvent=new CustomEvent(\"update_next_prev_buttons\",{detail:{hasMoreItems:hasMoreLoadMore,type:props.Pagination?.type,currentPage}});document.dispatchEvent(updateNextPrevButtonsEvent);//console.log(\"update_next_prev_buttons dispatched\", updateNextPrevButtonsEvent)\n}}},[products,sortedChildren,searchConfig.active]);React.useEffect(()=>{const hasMoreLoadMore=sortedChildren?.length>0;setHasMore(hasMoreLoadMore);if(props.Pagination.type===\"load_more\"&&searchConfig.active&&!sortedChildren){const hasMoreItemsEvent=new CustomEvent(\"hide-loadmore-button\",{detail:{hasMoreItems:hasMoreLoadMore}});document.dispatchEvent(hasMoreItemsEvent);//console.log(\"hide-loadmore-button dispatched\", hasMoreItemsEvent)\n}if(props.Pagination.type===\"next_prev\"&&searchConfig.active&&!sortedChildren){const updateNextPrevButtonsEvent=new CustomEvent(\"update_next_prev_buttons\",{detail:{hasMoreItems:hasMoreLoadMore,type:props.Pagination?.type,currentPage}});document.dispatchEvent(updateNextPrevButtonsEvent);//console.log(\"update_next_prev_buttons dispatched\", updateNextPrevButtonsEvent)\n}},[products,sortedChildren,searchConfig.active,props.Pagination.type]);// Add this after the URL parameters useEffect\nReact.useEffect(()=>{// Check if we're in a browser environment\nif(typeof window===\"undefined\")return;// Check for shopXtools and products\nconst hasShopXTools=!!window.shopXtools;const products=window.shopXtools?.products;// Log initial state\n// console.log(\"🚨 Checking for initial shopXtools products 🚨\", {\n//     hasShopXTools,\n//     hasProducts: !!products,\n//     productsCount: products?.length || 0,\n// })\n// Set products if available\nif(products){// console.log(\"🚨 Setting initial products from shopXtools 🚨\", {\n//     count: products.length,\n//     sample: products[0]?.node,\n// })\nsetProducts(products);}},[])// Only run on mount\n;if(!Collection?.[0]){logDebug(\"ProductSort\",\"No collection instance found\",null);return /*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#666\",fontSize:\"14px\"},children:\"Connect instance\"});}const collectionInstance=Collection[0];const emptyStateInstance=props.EmptyState?.[0];const sizedInstance=/*#__PURE__*/React.cloneElement(collectionInstance,{style:{...collectionInstance.props?.style||{},width:\"100%\",height:\"100%\"}});// Update the layout styling logic\nlet layoutStyle={};if(props.layout){const layout=props.layout;switch(layout.type){case\"stack\":const isVertical=layout.direction===\"vertical\";layoutStyle={display:\"flex\",flexDirection:isVertical?\"column\":\"row\",flexWrap:layout.wrap?\"wrap\":\"nowrap\",alignItems:isVertical?layout.align:layout.alignH,justifyContent:layout.distribute,gap:layout.gap,padding:layout.paddingPerSide?`${layout.paddingTop}px ${layout.paddingRight}px ${layout.paddingBottom}px ${layout.paddingLeft}px`:`${layout.padding}px`,width:\"100%\",\"& > *\":{minWidth:layout.stackMinWidth,flexGrow:1,flexShrink:1,flexBasis:0}};break;case\"grid\":let gridTemplateColumns=\"\";if(layout.columns===\"auto\"){// Combine auto-fit with a calculated minmax to respect both gridWidth and maxColumns.\n// The min value ensures columns are at least gridWidth, but also effectively caps\n// the column count at maxColumns by calculating the width required for that many columns.\ngridTemplateColumns=`repeat(auto-fit, minmax(max(${layout.gridWidth}px, calc((100% - ${layout.gap*(layout.maxColumns-1)}px) / ${layout.maxColumns})), 1fr))`;}else{gridTemplateColumns=`repeat(${layout.columnCount}, 1fr)`;}layoutStyle={display:\"grid\",gridTemplateColumns,justifyItems:layout.gridAlign,gap:layout.gap,padding:layout.paddingPerSide?`${layout.paddingTop}px ${layout.paddingRight}px ${layout.paddingBottom}px ${layout.paddingLeft}px`:`${layout.padding}px`,width:\"100%\"};break;}}// Create the styled instance with layout\nconst styledInstance=/*#__PURE__*/React.cloneElement(sizedInstance,{style:{...sizedInstance.props.style,...layoutStyle}});if(RenderTarget.current()===RenderTarget.canvas){return styledInstance;}const[isBackNavigation,setIsBackNavigation]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;const handleUrlChange=event=>{// console.log(\"popstate\", event)\nconst url=new URL(window.location.href);const urlParams=new URLSearchParams(url.search);// Handle page parameter\nconst pageParam=urlParams.get(\"page\");const newPage=pageParam?parseInt(pageParam,10):1;//console.log(\"[CMS] Checking page change:\", { currentPage, newPage })\nif(newPage!==currentPage){//console.log(\"[CMS] Updating to page:\", newPage)\nsetCurrentPage(newPage);setSortedChildren(null)// Reset sorted children to trigger re-render\n;}setIsLoading(true);logDebug(\"ProductSort\",\"URL changed\",{url:url.toString(),search:url.search,eventType:event?.type||\"direct\",currentPage:currentPage,newPage:newPage});if(event.type===\"popstate\"){//console.log(\"Reloading the page\")\nwindow.location.reload();}// Set loading to false after a short delay to prevent flash\nsetTimeout(()=>{setIsLoading(false);setIsBackNavigation(false);},150);};// Run initial check\nhandleUrlChange({});// Listen for both popstate and pagination events\nwindow.addEventListener(\"popstate\",handleUrlChange);document.addEventListener(\"product-pagination-change\",handleUrlChange);return()=>{// window.removeEventListener(\"popstate\", handleUrlChange)\ndocument.removeEventListener(\"product-pagination-change\",handleUrlChange);};},[currentPage]);try{logDebug(\"ProductSort\",\"Rendering collection\",{hasCollection:!!Collection[0],productsCount:products.length,sortedChildrenCount:sortedChildren?sortedChildren.length:0,isBackNavigation,isLoading});return /*#__PURE__*/React.cloneElement(styledInstance,{...styledInstance.props,style:{...styledInstance.props.style,opacity:isLoading?0:1,transition:\"opacity 0.2s ease-in-out\",visibility:isLoading?\"hidden\":\"visible\"},children:/*#__PURE__*/React.cloneElement(styledInstance.props.children,{...styledInstance.props.children.props,children:/*#__PURE__*/React.cloneElement(styledInstance.props.children.props.children,{...styledInstance.props.children.props.children.props,children:collection=>{logDebug(\"ProductSort\",\"Collection render function called\",{collectionSize:collection?.length||0});const originalRender=styledInstance.props.children.props.children.props.children(collection);if(!originalRender?.props?.children){logDebug(\"ProductSort\",\"No children in original render\",null);return originalRender;}if(props.Search?.enableSearch&&props.Search?.initialSearchState===\"custom\"&&!searchConfig.term&&props.CustomInitialState?.[0]){// console.log(\n//     \"Rendering custom initial state:\",\n//     {\n//         enableSearch: props.Search?.enableSearch,\n//         initialSearchState: props.Search?.initialSearchState,\n//         searchConfig: searchConfig,\n//     }\n// )\nconst styledCustomInitial=/*#__PURE__*/React.cloneElement(props.CustomInitialState[0],{style:{...props.CustomInitialState[0].props?.style||{},width:\"100%\",height:\"100%\",maxWidth:\"100%\",transform:\"none\"}});// Create a wrapper that completely overrides any grid styles\nconst CustomInitialWrapper=()=>/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",padding:props.layout?.padding?`${props.layout.padding}px`:\"0px\",// Override any grid properties\n    gridColumn:\"1 / -1\",gridRow:\"1 / -1\",// Ensure it spans the full container\n    position:\"relative\",minWidth:\"100%\",maxWidth:\"100%\"},children:styledCustomInitial});return{...originalRender,props:{...originalRender.props,children:/*#__PURE__*/_jsx(CustomInitialWrapper,{})}};}if(!sortedChildren&&products.length>0){// console.log(\n//     \"🚨🚨🚨 STARTING FILTERING PROCESS 🚨🚨🚨\",\n//     {\n//         productsLength: products.length,\n//         hasShopXTools:\n//             typeof window !== \"undefined\" &&\n//             !!window.shopXtools,\n//         activeFilters: Object.entries(filters)\n//             .filter(\n//                 ([key, filter]: [\n//                     string,\n//                     any,\n//                 ]) => filter.active\n//             )\n//             .reduce(\n//                 (\n//                     acc,\n//                     [key, filter]: [string, any]\n//                 ) => ({\n//                     ...acc,\n//                     [key]: filter,\n//                 }),\n//                 {}\n//             ),\n//         firstProduct: products[0]?.node,\n//     }\n// )\n// First filter all shopXtools products\nconst filteredShopXProducts=products.filter(({node})=>{// Add debug log for products being filtered\n// console.log(\n//     \"🔍 Checking product for filtering:\",\n//     {\n//         title:\n//             node?.title || \"No title\",\n//         hasNode: !!node,\n//         nodeType: node\n//             ? typeof node\n//             : \"undefined\",\n//         productType:\n//             node?.productType ||\n//             \"No product type\",\n//         filterActive:\n//             searchConfig.active,\n//     }\n// )\n// Ensure node exists\nif(!node){// console.log(\n//     \"⚠️ No node found for product, skipping\"\n// )\nreturn false;}const matches=productMatchesFilters(node);// console.log(\n//     \"🔍 Product filter result:\",\n//     {\n//         title: node.title,\n//         productType: node.productType,\n//         matches: matches.matches,\n//         searchActive:\n//             searchConfig.active,\n//         searchTerm: searchConfig.term,\n//     }\n// )\nreturn matches.matches;});// console.log(\n//     \"🔍 Filtered shopX products results:\",\n//     {\n//         totalBefore: products.length,\n//         totalAfter:\n//             filteredShopXProducts.length,\n//         firstProduct: filteredShopXProducts[0]\n//             ?.node\n//             ? {\n//                   title: filteredShopXProducts[0]\n//                       .node.title,\n//                   productType:\n//                       filteredShopXProducts[0]\n//                           .node.productType,\n//               }\n//             : null,\n//         activeFilters: Object.entries(filters)\n//             .filter(\n//                 ([key, filter]: [\n//                     string,\n//                     any,\n//                 ]) => filter.active\n//             )\n//             .reduce(\n//                 (\n//                     acc,\n//                     [key, filter]: [string, any]\n//                 ) => ({\n//                     ...acc,\n//                     [key]: filter,\n//                 }),\n//                 {}\n//             ),\n//         searchActive: searchConfig.active,\n//         searchTerm: searchConfig.term,\n//     }\n// )\n// Add additional debugging if no products match\n// if (\n//     filteredShopXProducts.length === 0 &&\n//     products.length > 0\n// ) {\n//     console.log(\n//         \"⚠️ NO PRODUCTS MATCHED FILTERS! Active filters:\",\n//         {\n//             searchConfig: searchConfig.active\n//                 ? searchConfig\n//                 : null,\n//             otherFilters: Object.entries(\n//                 filters\n//             )\n//                 .filter(\n//                     ([key, filter]: [\n//                         string,\n//                         any,\n//                     ]) => filter.active\n//                 )\n//                 .reduce(\n//                     (\n//                         acc,\n//                         [key, filter]: [\n//                             string,\n//                             any,\n//                         ]\n//                     ) => ({\n//                         ...acc,\n//                         [key]: filter,\n//                     }),\n//                     {}\n//                 ),\n//         }\n//     )\n//     // Log some sample products to help diagnose\n//     console.log(\n//         \"Sample products that didn't match:\",\n//         products.slice(0, 3).map((p) => ({\n//             title: p.node?.title,\n//             productType: p.node?.productType,\n//             tags: p.node?.tags?.slice(0, 3),\n//             collections: p.node?.collections\n//                 ?.map((c) => c.title || c)\n//                 .slice(0, 3),\n//         }))\n//     )\n// }\nconst filteredForPage=pageType===\"favorites\"?filteredShopXProducts.filter(({node})=>{const productId=findDeep13DigitNumber(node);return productId&&favorites.includes(productId);}):filteredShopXProducts;// If no items match, render the empty state directly\nif(filteredForPage.length===0){if(emptyStateInstance){const styledEmptyState=/*#__PURE__*/React.cloneElement(emptyStateInstance,{style:{...emptyStateInstance.props?.style||{},width:\"100%\",height:\"100%\",maxWidth:\"100%\",transform:\"none\"}});// Create a wrapper that completely overrides any grid styles\nconst EmptyStateWrapper=()=>/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",padding:props.layout?.padding?`${props.layout.padding}px`:\"0px\",// Override any grid properties\n    gridColumn:\"1 / -1\",gridRow:\"1 / -1\",// Ensure it spans the full container\n    position:\"relative\",minWidth:\"100%\",maxWidth:\"100%\"},children:styledEmptyState});// Return the wrapper component directly\nreturn{...originalRender,props:{...originalRender.props,style:{...originalRender.props.style,// Override grid properties at the container level\ndisplay:\"flex\",gridTemplateColumns:\"none\",gridAutoColumns:\"none\",gridTemplateRows:\"none\",gap:0},children:/*#__PURE__*/_jsx(EmptyStateWrapper,{})}};}return null;}// Then map the filtered products to collection items\nconst items=originalRender.props.children.map(child=>{const item=collection.find(collectionItem=>collectionItem.id===child.key);const productId=item?findDeep13DigitNumber(item):null;// Find the product in our filtered shopX products\nconst fullId=`gid://shopify/Product/${productId}`;const matchingProduct=filteredForPage.find(({node})=>node.id===fullId);// Only include items that exist in our filtered products\nif(!matchingProduct){logDebug(\"ProductSort\",\"Product filtered out\",{id:fullId,productId});return null;}const details={id:matchingProduct.node.id,title:matchingProduct.node.title||\"\",price:matchingProduct.node.priceRange?.minVariantPrice?.amount?parseFloat(matchingProduct.node.priceRange.minVariantPrice.amount):0,productType:matchingProduct.node.productType||\"\",tags:matchingProduct.node.tags||[],compareAtPrice:matchingProduct.node.compareAtPriceRange?.minVariantPrice?.amount?parseFloat(matchingProduct.node.compareAtPriceRange.minVariantPrice.amount):0,collections:Array.isArray(matchingProduct.node.collections)?matchingProduct.node.collections.map(c=>c.title):[]};return{child,productId:productId||\"0\",price:details.price,title:details.title,originalIndex:originalRender.props.children.indexOf(child),details};}).filter(Boolean)// Remove null items\n;logDebug(\"ProductSort\",\"Final filtered items\",{totalProducts:products.length,filteredForPage:filteredForPage.length,finalItems:items.length,finalItemsList:items,sample:items[0]?{title:items[0].title,productType:items[0].details.productType}:null});// Use React.memo for components that do not change\nconst OptimizedChild=/*#__PURE__*/React.memo(({child,...props})=>{return /*#__PURE__*/React.cloneElement(child,props);});// Ensure debouncing is applied effectively\nconst debouncedUpdateSort=React.useCallback(debounce(newSortConfig=>{setSortConfig(newSortConfig);},150),[]);const debouncedUpdateFilter=React.useCallback(debounce(newFilters=>{setFilters(newFilters);},150),[]);// Add detailed logging around transition logic\n// console.log(\n//     \"🔍 Transition state before rendering\",\n//     {\n//         isTransitioning,\n//         isSettling,\n//         itemsLength: items.length,\n//         emptyStateInstanceExists:\n//             !!emptyStateInstance,\n//     }\n// )\n// Modify the child wrapper styles to include settling state\nconst getTransitionStyles=baseStyles=>({...baseStyles,opacity:isTransitioning||isSettling?0:1,transition:`opacity ${isSettling?\"0.5s\":\"0.3s\"} ease-in-out`,pointerEvents:isTransitioning||isSettling?\"none\":\"auto\"});// Render sorted items\n// console.log(\"🔍 Rendering sorted items\", {\n//     sortedItemsCount: items.length,\n//     sortedItems: items,\n//     isTransitioning,\n//     isSettling,\n// })\n// Sort the filtered items\nconst sorted=[...items].sort((a,b)=>{if(sortConfig.type===\"relevancy\"){return a.originalIndex-b.originalIndex;}if(sortConfig.type===\"price\"){const result=sortConfig.sortDirection===\"highToLow\"?b.price-a.price:a.price-b.price;return result||a.originalIndex-b.originalIndex;}else if(sortConfig.type===\"name\"){// sort by name\nconst result=sortConfig.sortDirection===\"aToZ\"?a.title.localeCompare(b.title):b.title.localeCompare(a.title);return result||a.originalIndex-b.originalIndex;}else if(sortConfig.type===\"created\"){// For \"newest\", we try to use the product ID as a proxy\n// since Shopify IDs are sequential\n// Higher ID = newer product\nconst aId=parseInt(a.productId);const bId=parseInt(b.productId);if(!isNaN(aId)&&!isNaN(bId)){return bId-aId// Newest first\n;}// Fall back to original order if we can't parse IDs\nreturn a.originalIndex-b.originalIndex;}else if(sortConfig.type===\"best-selling\"){// For best-selling, maintain the original order\n// as we assume Shopify has already sorted by best-selling\nreturn a.originalIndex-b.originalIndex;}else{// Default to original order for unknown types\nreturn a.originalIndex-b.originalIndex;}});// Apply pagination if enabled\nlet paginatedItems=sorted;// console.log(\"🔍 Paginated items\", {\n//     paginatedItemsCount: sorted.length,\n//     paginatedItems: sorted,\n// })\n// Update the product items wrapper with a standard list instead of virtualized one\nconst wrappedChildren=paginatedItems.map(item=>/*#__PURE__*/React.cloneElement(item.child,{style:getTransitionStyles(item.child.props.style),key:item.productId||item.originalIndex}));// console.log(\"🔍 Rendering wrapped children\", {\n//     wrappedChildrenCount: wrappedChildren.length,\n//     wrappedChildren: wrappedChildren,\n// })\n// Update sorted children state which triggers re-render\nupdateSortedChildrenWithTransition(wrappedChildren);// Return the placeholder structure expected by the outer cloneElement\n// The actual content will be replaced by sortedChildren on re-render\nreturn{...originalRender,props:{...originalRender.props,// Use the original children length initially\nchildren:originalRender.props.children}};}// Initial render or while loading/filtering\nreturn{...originalRender,props:{...originalRender.props,children:sortedChildren||originalRender.props.children}};}})})});}catch(error){console.error(\"Error in ProductSort:\",error);logDebug(\"ProductSort\",\"Render error\",{error:error.message});return styledInstance;}// Update URL state management\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const url=new URL(window.location.href);// Use the updateUrlWithFilters function to update URL parameters\nupdateUrlWithFilters(filters,url);// Add search term to URL\nif(searchConfig.active&&searchConfig.term){url.searchParams.set(\"search\",searchConfig.term);}else if(url.searchParams.has(\"search\")){url.searchParams.delete(\"search\");}// Add sort configuration to URL using the simplified sort parameter\nif(sortConfig){// Map internal sort configuration to URL sort parameter\nlet sortParam;if(sortConfig.type===\"relevancy\"){sortParam=\"relevance\";}else if(sortConfig.type===\"name\"){sortParam=sortConfig.sortDirection===\"aToZ\"?\"title_asc\":\"title_desc\";}else if(sortConfig.type===\"price\"){sortParam=sortConfig.sortDirection===\"lowToHigh\"?\"price_asc\":\"price_desc\";}else if(sortConfig.type===\"created\"){sortParam=\"newest\";}else if(sortConfig.type===\"best-selling\"){sortParam=\"best_selling\";}if(sortParam){url.searchParams.set(\"sort\",sortParam);// Remove legacy sortConfig parameter if it exists\nif(url.searchParams.has(\"sortConfig\")){url.searchParams.delete(\"sortConfig\");}}else{// Fallback to the old format if we can't map to a simple parameter\nurl.searchParams.set(\"sortConfig\",JSON.stringify(sortConfig));}}// Update history state with search config\nwindow.history.pushState({filters,sortConfig,searchConfig},\"\",url.toString());},[sortConfig,filters,searchConfig]);// Update the useEffect for initializing state from URL\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const handleUrlChange=event=>{const url=new URL(window.location.href);const urlParams=new URLSearchParams(window.location.search);logDebug(\"ProductSort\",\"URL changed\",{url:url.toString(),search:url.search,eventType:event?.type||\"direct\"});// Handle search parameter\nconst searchParam=urlParams.get(\"search\");if(searchParam){setSearchConfig({term:searchParam,fields:getActiveSearchFields(props.Search?.Scope),active:true});setSortedChildren(null)// Force re-filter when search changes\n;}else if(searchConfig.active){setSearchConfig({term:\"\",fields:getActiveSearchFields(props.Search?.Scope),active:false});setSortedChildren(null)// Force re-filter when search is cleared\n;}// Log all variant parameters in URL for debugging\nconst variantParams=Array.from(urlParams.keys()).filter(key=>key.startsWith(\"variant_\")).reduce((acc,key)=>{const value=urlParams.get(key);// Decode values to see what's actually stored\nacc[key]={raw:value,decoded:value?decodeURIComponent(value):null,values:value?decodeURIComponent(value).split(\",\").filter(Boolean):[]};return acc;},{});//console.log(\"📊 VARIANT PARAMS IN URL:\", variantParams)\n// Handle sort parameter\nconst sortParam=urlParams.get(\"sort\");if(sortParam){let newSortConfig;// Map URL sort parameter to internal sort configuration\nswitch(sortParam){case\"relevance\":newSortConfig={type:\"relevancy\",sortBy:\"relevancy\",sortDirection:null};break;case\"title_asc\":newSortConfig={type:\"name\",sortBy:\"name\",sortDirection:\"aToZ\"};break;case\"title_desc\":newSortConfig={type:\"name\",sortBy:\"name\",sortDirection:\"zToA\"};break;case\"price_asc\":newSortConfig={type:\"price\",sortBy:\"price\",sortDirection:\"lowToHigh\"};break;case\"price_desc\":newSortConfig={type:\"price\",sortBy:\"price\",sortDirection:\"highToLow\"};break;case\"newest\":newSortConfig={type:\"created\",sortBy:\"created\",sortDirection:\"newest\"};break;case\"best_selling\":newSortConfig={type:\"best-selling\",sortBy:\"best-selling\",sortDirection:null};break;}if(newSortConfig){logDebug(\"ProductSort\",\"Updating sort config from URL parameter\",{sortParam,newSortConfig});setSortConfig(newSortConfig);setSortedChildren(null)// Reset sorted children to trigger resort\n;}}try{// Use parseUrlFilters to get filters from URL\nconst urlFilters=parseUrlFilters(url.searchParams);// Check if we have active filters\nconst hasActiveFilters=urlFilters&&Object.keys(urlFilters).some(key=>urlFilters[key]?.active);logDebug(\"ProductSort\",\"URL filters parsed\",{hasActiveFilters,filters:urlFilters,activeFilters:hasActiveFilters?Object.entries(urlFilters).filter(([key,filter])=>filter.active).reduce((acc,[key,filter])=>({...acc,[key]:filter}),{}):null});// Only update if we have filters in the URL\nif(hasActiveFilters){setFilters(urlFilters);setSortedChildren(null);}}catch(error){console.error(\"❌ Error handling URL change:\",error);}};// Run initial check\nlogDebug(\"ProductSort\",\"Running initial URL check\",{url:window.location.href});handleUrlChange({})// Removed event listener for now\n;// Listen for popstate events\nwindow.addEventListener(\"popstate\",handleUrlChange);return()=>{window.removeEventListener(\"popstate\",handleUrlChange);};},[props.Search?.Scope]);// Add error state management\nconst[error,setError]=React.useState(null);// Create the content to render\nconst content=error?/*#__PURE__*/_jsx(\"div\",{style:{padding:20,color:\"red\"},children:error.message}):// Original render content with layout styling\n/*#__PURE__*/_jsx(\"div\",{...props,style:{...props.style,width:\"100%\",height:\"100%\",...(!products?.length||pageType===\"favorites\"&&!favorites?.length)&&{display:\"flex\",gridTemplateColumns:\"none\",gridAutoColumns:\"none\",gridTemplateRows:\"none\",gap:0}},children:styledInstance.props.children});// Wrap the main content in error boundary\nreturn /*#__PURE__*/_jsx(ErrorBoundary,{children:content});}addPropertyControls(FC_CatalogDisplay,{Collection:{type:ControlType.ComponentInstance,title:\"CMS Source\",description:\"Connect to CMS collection off-page\"},EmptyState:{type:ControlType.ComponentInstance,title:\"Empty State\",description:\"Connect to design off-page\"},CustomInitialState:{type:ControlType.ComponentInstance,title:\"Initial State\",description:\"Connect to design off-page\",hidden:props=>!props.Search?.enableSearch||props.Search?.initialSearchState!==\"custom\"},pageType:{type:ControlType.Enum,title:\"Display\",options:[\"default\",\"favorites\"],optionTitles:[\"All\",\"Favorites\"],defaultValue:\"default\",displaySegmentedControl:true},display:{type:ControlType.Enum,title:\"Filter Type\",options:[\"All\",\"Collection\",\"Product Tag\",\"Product Type\"],defaultValue:\"All\"},value:{type:ControlType.String,title:\"Filter Value\",placeholder:\"New Arrivals\"},defaultSort:{type:ControlType.Enum,title:\"Default Sort\",options:[\"relevance\",\"title_asc\",\"title_desc\",\"price_asc\",\"price_desc\",\"newest\",\"best_selling\"],optionTitles:[\"Relevance\",\"Title A-Z\",\"Title Z-A\",\"Price Low-High\",\"Price High-Low\",\"Newest\",\"Best Selling\"],defaultValue:\"relevance\"},Search:{type:ControlType.Object,title:\"Search\",controls:{enableSearch:{type:ControlType.Boolean,title:\"Allow\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},initialSearchState:{type:ControlType.Enum,title:\"Initial State\",options:[\"all\",\"none\",\"custom\"],optionTitles:[\"Full\",\"Empty\",\"Custom\"],defaultValue:\"all\",description:\"Use custom to display product or search suggestions. Connect your component on the main panel.\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.enableSearch},Scope:{type:ControlType.Object,title:\"Scope\",hidden:props=>!props.enableSearch,controls:{title:{type:ControlType.Boolean,title:\"Title\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},productType:{type:ControlType.Boolean,title:\"Product Type\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},productTag:{type:ControlType.Boolean,title:\"Tags\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},collection:{type:ControlType.Boolean,title:\"Collections\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},vendor:{type:ControlType.Boolean,title:\"Vendor\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},variants:{type:ControlType.Boolean,title:\"Variants\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"}}}}},Metafields:{type:ControlType.Object,title:\"Metafields\",controls:{include:{type:ControlType.Boolean,title:\"Include\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Searching or filtering by Variant: Color will also check custom metafields using custom.fc_color. \\n [Learn more](https://framercommerce.com/resources/docs/components/catalog#catalog-display)\"}}},Pagination:{type:ControlType.Object,title:\"Pagination\",controls:{enable:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},type:{type:ControlType.Enum,title:\"Type\",options:[\"load_more\",\"next_prev\"/* \"infinite\"*/],optionTitles:[\"Load More\",\"Next/Prev\"/*\"Infinite Scroll\"*/],defaultValue:\"load_more\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:({enable})=>!enable},items:{type:ControlType.Number,title:\"Items\",defaultValue:12,min:1,step:1,displayStepper:true,hidden:({enable})=>!enable}}},layout:{type:ControlType.Object,optional:true,controls:{type:{type:ControlType.Enum,defaultValue:\"grid\",options:[\"stack\",\"grid\"],optionTitles:[\"Stack\",\"Grid\"],displaySegmentedControl:true},// Stack specific controls\ndirection:{type:ControlType.Enum,defaultValue:\"vertical\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true,hidden:props=>props.type!==\"stack\"},wrap:{type:ControlType.Boolean,defaultValue:false,title:\"Wrap\",hidden:props=>props.type!==\"stack\"},stackMinWidth:{type:ControlType.Number,defaultValue:200,min:1,max:1e3,step:1,title:\"Min Width\",hidden:props=>props.type!==\"stack\"||!props.wrap},distribute:{type:ControlType.Enum,defaultValue:\"start\",options:[\"start\",\"center\",\"end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],hidden:props=>props.type!==\"stack\"},align:{type:ControlType.Enum,defaultValue:\"start\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],optionIcons:[\"align-left\",\"align-center\",\"align-right\"],displaySegmentedControl:true,hidden:props=>props.type!==\"stack\"||props.direction!==\"vertical\"},alignH:{type:ControlType.Enum,defaultValue:\"start\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"],displaySegmentedControl:true,title:\"Align\",hidden:props=>props.type!==\"stack\"||props.direction!==\"horizontal\"},// Grid specific controls\ncolumns:{type:ControlType.Enum,defaultValue:\"fixed\",options:[\"auto\",\"fixed\"],optionTitles:[\"Auto\",\"Fixed\"],displaySegmentedControl:true,hidden:props=>props.type!==\"grid\"},columnCount:{type:ControlType.Number,defaultValue:3,min:1,step:1,displayStepper:true,title:\"Columns\",hidden:props=>props.type!==\"grid\"||props.columns===\"auto\"},gridWidth:{type:ControlType.Number,defaultValue:300,min:1,max:1e3,step:1,title:\"Min Width\",hidden:props=>props.type!==\"grid\"||props.columns===\"fixed\"},maxColumns:{type:ControlType.Number,defaultValue:4,min:1,step:1,title:\"Max Col\",displayStepper:true,hidden:props=>props.type!==\"grid\"||props.columns===\"fixed\"},gridAlign:{type:ControlType.Enum,defaultValue:\"center\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,title:\"Align\",hidden:props=>props.type!==\"grid\"},// Common controls\ngap:{type:ControlType.Number,defaultValue:20,min:0,step:1,title:\"Gap\"},padding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:0,min:0,toggleKey:\"paddingPerSide\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"]}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_CatalogDisplay\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_CatalogDisplay.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{useEffect,useMemo,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{get}from\"lodash-es\";import{useIsBrowser}from\"https://framerusercontent.com/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";import{knownCurrenciesWithCodeAsSymbol}from\"https://framerusercontent.com/modules/k9s4cejdkBGDjmzudhzM/18cq93eooqM4YmdbL7E2/currencyMaps.js\";import{getLocaleFromCountry}from\"https://framerusercontent.com/modules/vC6fzbfO83MgBPIhn5zl/N2GIWD1ik8HES3ASBGeD/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}={}}=props;const isBrowser=useIsBrowser();const[product,setProduct]=useState();const[activeVariant,setActiveVariant]=useState();const[subscriptionPrice,setSubscriptionPrice]=useState(null);const[selectedCurrency,setSelectedCurrency]=useState(\"\");const[selectedCountryCode,setSelectedCountryCode]=useState(\"\");const[selectedCountry,setSelectedCountry]=useState(\"\");const[isLoadingPrice,setIsLoadingPrice]=useState(false);// 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=async e=>{if(!e.detail||e.detail.productId!==`gid://shopify/Product/${shopifyProductID}`){return;}console.log(\"handleVariantChange\",e.detail);setIsLoadingPrice(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){setActiveVariant(matchingVariant.node);}}}catch(error){// Fallback to using the event detail directly\nsetActiveVariant(e.detail);}finally{setIsLoadingPrice(false);}};// Listen for currency changes\nuseEffect(()=>{if(!isBrowser)return;const handleCurrencyChange=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);}};window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[isBrowser,shopifyProductID,activeVariant,selectedCurrency,selectedCountryCode]);// Initial product load\nuseEffect(()=>{if(!isBrowser)return;const handleProductsReady=async e=>{if(Array.isArray(e.detail.products)){const _matchingProduct=e.detail.products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);if(_matchingProduct.node?.variants?.edges?.length===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}setActiveVariant(_matchingProduct.node?.variants?.edges[0].node);}}};const 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(_matchingProduct.node);if(_matchingProduct.node?.variants?.edges?.length===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}setActiveVariant(_matchingProduct.node?.variants?.edges[0].node);}}catch(error){// Error handling\n}finally{setIsLoadingPrice(false);}};loadProduct();// Add event listeners\ndocument.addEventListener(\"product__active-variant__changed\",handleVariantChange);document.addEventListener(\"data__products-ready\",handleProductsReady);// Cleanup\nreturn()=>{document.removeEventListener(\"product__active-variant__changed\",handleVariantChange);document.removeEventListener(\"data__products-ready\",handleProductsReady);};},[isBrowser,shopifyProductID,selectedCurrency,selectedCountryCode]);// Add subscription price listener\nuseEffect(()=>{if(!isBrowser)return;const handleSubscriptionPriceUpdate=e=>{if(e.detail?.productId===shopifyProductID&&e.detail?.price){//console.log(\"selling plan event\", e.detail)\nsetSubscriptionPrice(e.detail.price);}else{setSubscriptionPrice(null);}};document.addEventListener(\"subscription__price-update\",handleSubscriptionPriceUpdate);return()=>{document.removeEventListener(\"subscription__price-update\",handleSubscriptionPriceUpdate);};},[isBrowser]);// 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);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\"\";// For canvas view, handle the display options directly\nif(typeof RenderTarget!==\"undefined\"&&(RenderTarget.current()===RenderTarget.canvas||showMockValues)){const price=canvasPrice||\"50.00\";const numericPrice=parseFloat(price);const currentCurrencyCode=currencyCode||\"USD\";return formatPriceWithOptions(numericPrice,currentCurrencyCode);}// For live view, use the selected currency or preview currency\nconst amount=subscriptionPrice||(activeVariant?get(activeVariant,\"price.amount\"):get(product,\"priceRange.minVariantPrice.amount\"));// console.log(\"subscriptionPrice\", subscriptionPrice)\n//console.log(\"amount\", amount)\nif(!amount)return\"\";const numericPrice=parseFloat(amount);if(isNaN(numericPrice))return\"\";const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";return formatPriceWithOptions(numericPrice,currentCurrencyCode);},[isBrowser,showMockValues,activeVariant,product,canvasPrice,showCurrency,showSymbol,currencyCode,showDecimals,selectedCurrency,subscriptionPrice,props.format]);const compareAtPrice=useMemo(()=>{const amount=activeVariant?get(activeVariant,\"compareAtPrice.amount\"):get(product,\"compareAtPriceRange.minVariantPrice.amount\");if(!amount)return\"\";const numericPrice=parseFloat(amount);if(isNaN(numericPrice))return\"\";const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";// Use the same formatting function as the main price\nreturn formatPriceWithOptions(numericPrice,currentCurrencyCode);},[activeVariant,product,currencyCode,showCurrency,showSymbol,showDecimals,selectedCurrency,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){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}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:{...computedStyles,transform:\"none\",transition:\"none\",animation:\"none\",willChange:\"auto\"},children:text})});}// Property controls remain the same\nFC_ProductPrice.defaultProps={shopifyProductID:\"\",canvasPrice:\"50.00\",format:{showCurrency:true,showSymbol:true,currencyCode:\"USD\",showDecimals:\"Always show\"}};addPropertyControls(FC_ProductPrice,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS\"},canvasPrice:{type:ControlType.String,title:\"Price\",description:\"Connect to CMS for canvas preview.\",defaultValue:\"50.00\"},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:\"Regular\",defaultValue:\"#000\"},saleFont:{type:ControlType.Font,title:\"Sale\",controls:\"extended\"},saleColor:{type:ControlType.Color,title:\"Sale\",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 * Initialization utilities for Framer Commerce\n * This file contains functions that should run when the application first loads\n */import{getUTMParameters}from\"https://framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/FEvjwd8hgxLsRZOnQKKH/utmParams.js\";/**\n * Initialize global functionality for the store\n * This includes capturing UTM parameters, setting up event listeners, etc.\n */export function initializeStore(){// Capture UTM parameters when the page loads\nif(typeof window!==\"undefined\"){// Initialize UTM parameter tracking\ngetUTMParameters();// Add a listener for history changes to capture UTM parameters\n// when users navigate between pages\ntry{const originalPushState=history.pushState;const originalReplaceState=history.replaceState;history.pushState=function(){originalPushState.apply(this,arguments);getUTMParameters()// Capture UTM parameters after navigation\n;};history.replaceState=function(){originalReplaceState.apply(this,arguments);getUTMParameters()// Capture UTM parameters after navigation\n;};// Also listen for popstate events (back/forward navigation)\nwindow.addEventListener(\"popstate\",()=>{getUTMParameters();});}catch(error){console.error(\"Error setting up history listeners:\",error);}}}// Auto-initialize if this module is loaded\ninitializeStore();export default initializeStore;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"initializeStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/*\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{useEffect,useState,useRef,useCallback,cloneElement}from\"react\";import{createCartMutation,addToCartMutation,cartQuery,updateCartAttributes,updateCartCurrency}from\"https://framerusercontent.com/modules/yiRfl1JCGhIBUL31WVDk/wupS2XmBAHu1kBQNv9pi/mutations_v2.js\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{get}from\"lodash-es\";import{appendUTMParamsToUrl}from\"https://framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/FEvjwd8hgxLsRZOnQKKH/utmParams.js\";import{appendLanguageToUrl}from\"https://framerusercontent.com/modules/vC6fzbfO83MgBPIhn5zl/N2GIWD1ik8HES3ASBGeD/locales.js\";import{useIsBrowser}from\"https://framerusercontent.com/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";// Import initialization utility to ensure UTM tracking is set up\nimport\"https://framerusercontent.com/modules/FXrY3V9ZYVL8aziafDQn/Tma2gqWqWmkibhcQtVN5/initialize.js\";/**\n * @framerDisableUnlink\n */export default function FC_ProductPurchaseButton(props){const{shopifyProductID,available,OutOfStock,SelectVariant,LoadingState,shopifyProductVariantId,BuyNowATC,title=\"Add to Cart\",required=false,openCart=true}=props;// State from original component\nconst[product,setProduct]=useState();const[activeVariant,setActiveVariant]=useState();const[isInStock,setIsInStock]=useState(true);const[needsVariantSelection,setNeedsVariantSelection]=useState(false);const[isLoading,setIsLoading]=useState(true);const[shouldShowLoading,setShouldShowLoading]=useState(false);const[hasInitialized,setHasInitialized]=useState(false);const[countryCode,setCountryCode]=useState();const isBrowser=useIsBrowser();// Additional state for cart functionality\nconst[planSelected,setPlanSelected]=useState(\"one-time\");const[cartExistingData,setCartExistingData]=useState();const[errorMessage,setErrorMessage]=useState();const[productQuantity,setProductQuantity]=useState(1);const viewContentFired=useRef(false);const[autoSelectFirst,setAutoSelectFirst]=useState(false);const[isVariantManuallySelected,setIsVariantManuallySelected]=useState(false);// Check if variant is autoselected by default\nuseEffect(()=>{if(!isBrowser)return;//console.log(\"FC_ProductPurchaseButton mounted\")\nconst handleAutoSelectFlag=event=>{// console.log(\n//     \"Auto Select event received as:\",\n//     event.detail.autoSelectFirst\n// )\nsetAutoSelectFirst(event.detail.autoSelectFirst);window.__fc_autoSelectFirst=event.detail.autoSelectFirst;// console.log(\"Auto Select First Flag:\", event.detail.autoSelectFirst)\n};document.addEventListener(\"auto_select_first_flag\",handleAutoSelectFlag);return()=>{document.removeEventListener(\"auto_select_first_flag\",handleAutoSelectFlag);};},[isBrowser]);// Calculate total inventory helper function\nconst calculateTotalInventory=useCallback(productData=>{if(!productData||productData===\"404\")return 0;// If totalInventory is available, use it\nif(typeof productData.totalInventory===\"number\"){return productData.totalInventory;}// Otherwise sum up variant quantities\nreturn get(productData,\"variants.edges\",[]).reduce((total,{node})=>{return total+(node.quantityAvailable||0);},0);},[]);// Helper function to check if variant is available for sale\nconst isVariantAvailable=useCallback(variant=>{if(!variant)return false;// If availableForSale is true, the variant can be sold regardless of quantity\nif(variant.availableForSale)return true;// If availableForSale is false, check quantity\nreturn variant.quantityAvailable>0;},[]);// Error handling\nuseEffect(()=>{if(errorMessage&&isBrowser){const event=new CustomEvent(\"errorChanged\",{detail:errorMessage});window.dispatchEvent(event);}},[errorMessage]);// Load cart from localStorage\nuseEffect(()=>{if(!isBrowser||!window[\"shopXtools\"])return;// Try to load cart ID first\nconst savedCartId=localStorage.getItem(\"shopX_cart_id\");if(savedCartId){// If we have a cart ID, fetch the cart data\nwindow.shopXtools.handleCartMutation(cartQuery,{cartId:savedCartId}).then(data=>{if(data?.cart){setCartExistingData(data.cart);window.shopXtools.cart=data.cart;localStorage.setItem(\"shopXtools.cart\",JSON.stringify(data.cart));}}).catch(error=>{// Clear invalid cart data\nlocalStorage.removeItem(\"shopX_cart_id\");localStorage.removeItem(\"shopXtools.cart\");});}const handleSubscriptionChange=event=>{setPlanSelected(event.detail.subscriptionId);};document.addEventListener(\"subscription__selection-sync\",handleSubscriptionChange);return()=>document.removeEventListener(\"subscription__selection-sync\",handleSubscriptionChange);},[isBrowser]);// Add this at the top level with other event handlers\nconst handleQuantityChange=event=>{setProductQuantity(event.detail);};useEffect(()=>{if(isBrowser){window.addEventListener(\"FcQuantitySelectorchanges\",handleQuantityChange);// Track view content\nif(typeof fbq!==\"undefined\"&&!viewContentFired.current){fbq(\"track\",\"ViewContent\");viewContentFired.current=true;}// Cleanup\nreturn()=>{window.removeEventListener(\"FcQuantitySelectorchanges\",handleQuantityChange);};}},[isBrowser]);useEffect(()=>{if(!isBrowser)return;const handleCurrencyChange=async event=>{const{countryCode}=event.detail;setCountryCode(countryCode);const existingCartId=localStorage.getItem(\"shopX_cart_id\");if(existingCartId){try{const updateData=await window.shopXtools.handleCartMutation(updateCartCurrency,{cartId:existingCartId,countryCode:countryCode});if(updateData?.cartBuyerIdentityUpdate?.cart){window.shopXtools.cart=updateData.cartBuyerIdentityUpdate.cart;window.dispatchEvent(new Event(\"shopXtools-cart-update\"));}else{window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:\"Failed to update cart with new country code\"}));}}catch(error){window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:error.message||\"Failed to update cart currency\"}));}}};window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[isBrowser]);// Load product data and set up event listeners\nuseEffect(()=>{if(!isBrowser)return;const handleSingleVariantProduct=productNode=>{if(!productNode)return false;const variants=get(productNode,\"variants.edges\",[]);if(variants.length===1){const variant=variants[0].node;setActiveVariant(variant);if(!isVariantManuallySelected){window.__fc_activeVariantId=variant.id;}setIsInStock(isVariantAvailable(variant));setNeedsVariantSelection(false);return true;}return false;};const handleProductData=_matchingProduct=>{if(_matchingProduct){const productNode=_matchingProduct.node;setProduct(productNode||\"404\");// If shopifyProductVariantId is provided, find and set that variant\nif(shopifyProductVariantId&&productNode){const variantId=`gid://shopify/ProductVariant/${shopifyProductVariantId}`;const matchingVariant=get(productNode,\"variants.edges\",[]).find(({node})=>node.id===variantId);if(matchingVariant){setActiveVariant(matchingVariant.node);if(!isVariantManuallySelected){window.__fc_activeVariantId=matchingVariant.node.id;}setIsInStock(isVariantAvailable(matchingVariant.node));setNeedsVariantSelection(false);return;// Exit early as we've found our variant\n}}// Immediately handle single variant products\nif(handleSingleVariantProduct(productNode)){return;// Exit early as we've handled the single variant\n}if(autoSelectFirst&&!isVariantManuallySelected){//console.log(\"Auto-selecting the first variant\");\nconst firstAvailableVariant=productNode.variants.edges.find(edge=>edge.node.availableForSale)?.node;if(firstAvailableVariant){setActiveVariant(firstAvailableVariant);if(!isVariantManuallySelected){window.__fc_activeVariantId=firstAvailableVariant.id;}setIsInStock(isVariantAvailable(firstAvailableVariant));setNeedsVariantSelection(false);return;// Exit early as we've set the active variant\n}}// For multi-variant products without a selected variant\nconst variants=get(productNode,\"variants.edges\",[]);const hasMultipleVariants=variants.length>1;const optionsCount=get(productNode,\"options\",[]).length||0;// Only update needsVariantSelection if we don't have an active variant.\n// This is to prevent the \"Select Variant\" button from showing when the variant is already selected.\nif(!activeVariant){if(!autoSelectFirst&&hasMultipleVariants){setNeedsVariantSelection(true);}else{setNeedsVariantSelection(!shopifyProductVariantId&&hasMultipleVariants);}}// Check if any variant is available\nconst anyVariantAvailable=variants.some(({node})=>isVariantAvailable(node));setIsInStock(anyVariantAvailable);}else{setProduct(\"404\");setIsInStock(false);}};// Check if we already have product data available\nif(window.shopXtools?.products&&Array.isArray(window.shopXtools.products)){// console.log('Found existing products in shopXtools')\nconst _matchingProduct=window.shopXtools.products.find(({node})=>node.id===`gid://shopify/Product/${shopifyProductID}`);handleProductData(_matchingProduct);}const productsReadyHandler=()=>{//console.log('productsReadyHandler called')\n// Reset manual selection state when products are ready\nsetIsVariantManuallySelected(false);if(window?.shopXtools?.products){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===`gid://shopify/Product/${shopifyProductID}`);handleProductData(matchingProduct);}};const variantChangeHandler=e=>{// Only update the variant if no shopifyProductVariantId is provided\n// console.log(\"Variant changed, active variant is\", e.detail)\nif(e.detail){setActiveVariant(e.detail);setIsVariantManuallySelected(true);window.__fc_activeVariantId=e.detail.id;setIsInStock(e.detail.quantityAvailable>0);// console.log(\"e.detail.id\", e.detail.id)\n// console.log(\n//     \"window.__fc_activeVariantId\",\n//     window.__fc_activeVariantId\n// )\n// When autoSelectFirst is false, we need to make sure all variants are selected\n// before changing the button state\nif(autoSelectFirst||e.detail.isCompleteVariant){setNeedsVariantSelection(false);}}};document.addEventListener(\"data__products-ready\",productsReadyHandler);document.addEventListener(\"product__active-variant__changed\",variantChangeHandler);// Analytics\nconst currency=activeVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(activeVariant?.price?.amount||\"0\")*1).toFixed(2));const item_id=activeVariant?.id;const item_name=activeVariant?.title;const price=parseFloat(activeVariant?.price?.amount||\"0\");// Google Analytics tracking\nif(typeof window.fcTrackGAEvent===\"function\"){// console.log(\"Tracking View Item - google:\", {\n//     currency,\n//     value,\n//     items: [{\n//         item_id,\n//         item_name,\n//         price,\n//         quantity: 1\n//     }]\n// });\nwindow.fcTrackGAEvent(\"view_item\",{currency,value,items:[{item_id,item_name,price,quantity:1}]});}// Meta Pixel tracking\nif(typeof fbq===\"function\"){// console.log(\"Tracking View Item - meta:\", {\n//     content_type: 'product',\n//     content_ids: [item_id],\n//     content_name: item_name,\n//     value,\n//     currency\n// });\nfbq(\"track\",\"ViewContent\",{content_type:\"product\",content_ids:[item_id],content_name:item_name,value,currency});}return()=>{document.removeEventListener(\"data__products-ready\",productsReadyHandler);document.removeEventListener(\"product__active-variant__changed\",variantChangeHandler);};},[shopifyProductID,shopifyProductVariantId,activeVariant,isBrowser,calculateTotalInventory,autoSelectFirst]);// Update variant selection state when activeVariant changes\nuseEffect(()=>{if(!product||product===\"404\")return;const variants=get(product,\"variants.edges\",[]);const hasMultipleVariants=variants.length>1;const noVariantSelected=!activeVariant&&!shopifyProductVariantId;// console.log('Variant selection state update:', {\n//     hasMultipleVariants,\n//     noVariantSelected,\n//     activeVariant,\n//     shopifyProductVariantId\n// })\nsetNeedsVariantSelection(hasMultipleVariants&&noVariantSelected);},[product,activeVariant,shopifyProductVariantId]);// Handle single variant products\nconst handleSingleVariantProducts=product=>{if(!product)return;const variants=get(product,\"variants.edges\",[]);if(variants.length===1){const variant=variants[0].node;setActiveVariant(variant);setIsInStock(variant.quantityAvailable>0);setNeedsVariantSelection(false);}};// Cart functionality\nconst handleSubscription=async(mutation,variables)=>{if(!isBrowser)return null;const handleCartMutation=window[\"shopXtools\"]?.handleCartMutation;if(handleCartMutation){return await handleCartMutation(mutation,variables);}throw new Error(\"handleCartMutation function not available\");};const isValidId=id=>id!==null&&id!==undefined&&id!==\"\";const fullId=`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`;// Add new state for order field validation\nconst[orderFieldError,setOrderFieldError]=useState(false);// Debug logging function\nconst logDebug=(message,data)=>{// Empty function - no logging\n};// Enhanced validation function with logging\nconst validateOrderField=()=>{if(!props.required){logDebug(\"Validation skipped - not required\",{required:props.required});return true;}const productSpecificKey=`fc_cart_attributes_${props.shopifyProductID}`;const storedAttributes=sessionStorage.getItem(productSpecificKey);logDebug(\"Checking stored attributes\",{productSpecificKey,hasStoredAttributes:!!storedAttributes});if(!storedAttributes){return false;}try{const parsedAttrs=JSON.parse(storedAttributes);// Check if any attribute has a non-empty value\nconst hasValidValue=Object.values(parsedAttrs).some(value=>value&&String(value).trim()!==\"\");logDebug(\"Validation result\",{attributes:parsedAttrs,isValid:hasValidValue});return hasValidValue;}catch(error){return false;}};// Effect to initialize validation state\nuseEffect(()=>{if(props.required){const isValid=validateOrderField();logDebug(\"Initial validation\",{isValid,required:props.required});setOrderFieldError(!isValid);}},[props.required,props.shopifyProductID]);// Listen for order field changes with logging\nuseEffect(()=>{if(props.required){const handleOrderFieldChange=event=>{logDebug(\"Order field change event received\",event.detail);const isValid=validateOrderField();setOrderFieldError(!isValid);logDebug(\"Order field validation updated\",{isValid,orderFieldError:!isValid});};window.addEventListener(\"orderFieldChanged\",handleOrderFieldChange);return()=>window.removeEventListener(\"orderFieldChanged\",handleOrderFieldChange);}},[props.required]);const[isInputRequired,setIsInputRequired]=useState(false);// Effect to check if the input field exists and is required\nuseEffect(()=>{const checkInputRequirement=()=>{const configKey=`fc_input_config_${shopifyProductID}`;const config=sessionStorage.getItem(configKey);// Only set as required if the config exists and required is true\nif(config){const{required}=JSON.parse(config);setIsInputRequired(required);}else{// If no config exists, the field isn't on the page\nsetIsInputRequired(false);}};checkInputRequirement();// Listen for config changes\nwindow.addEventListener(\"inputConfigChanged\",checkInputRequirement);return()=>window.removeEventListener(\"inputConfigChanged\",checkInputRequirement);},[shopifyProductID]);const getLineItem=()=>{const merchandiseId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);if(!merchandiseId){throw new Error(\"No valid product variant selected\");}const lineItem={merchandiseId,quantity:productQuantity};// Add selling plan ID if a subscription is selected\nif(planSelected&&planSelected!==\"one-time\"){lineItem[\"sellingPlanId\"]=planSelected;}try{const productSpecificKey=`fc_cart_attributes_${props.shopifyProductID}`;const stored=sessionStorage.getItem(productSpecificKey);if(!stored)return lineItem;const data=JSON.parse(stored);// Get all attributes instead of just checking for specific ones\nconst attributes=[];// Process all key-value pairs in the stored data\nObject.entries(data).forEach(([key,value])=>{if(value&&String(value).trim()){attributes.push({key,value:String(value).trim()});}});// Only add attributes if we have any\nif(attributes.length>0){lineItem[\"attributes\"]=attributes;}}catch(e){console.error(\"Error adding attributes to cart item:\",e);}return lineItem;};const[maxQuantityReached,setMaxQuantityReached]=useState(false);// Modify the getCurrentCartQuantity function to add more logging\nconst getCurrentCartQuantity=useCallback(variantId=>{if(!cartExistingData?.lines?.edges){return 0;}const quantity=cartExistingData.lines.edges.reduce((total,{node})=>{if(node.merchandise.id===variantId){return total+node.quantity;}return total;},0);return quantity;},[cartExistingData]);const handleAddToCart=async()=>{try{if(!isBrowser)return;const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);if(props.maxQuantity>0){const currentCartQuantity=getCurrentCartQuantity(variantId);const totalRequestedQuantity=currentCartQuantity+productQuantity;if(currentCartQuantity>=props.maxQuantity){const message=`Maximum quantity of ${props.maxQuantity} already in cart`;window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:message}));setMaxQuantityReached(true);return;}if(totalRequestedQuantity>props.maxQuantity){const adjustedQuantity=props.maxQuantity-currentCartQuantity;setProductQuantity(adjustedQuantity);return;}}if(props.required||isInputRequired){const productSpecificKey=`fc_cart_attributes_${props.shopifyProductID}`;const storedAttributes=sessionStorage.getItem(productSpecificKey);const inputElement=document.querySelector(`[data-product-id=\"${props.shopifyProductID}\"]`);const currentInputValue=inputElement?.value||\"\";// Don't check for unsaved input if there's no input element or value\nif(inputElement&&currentInputValue&&storedAttributes){try{// Parse stored attributes\nconst parsedAttrs=JSON.parse(storedAttributes);// Check if the current input value is different from any of the stored attribute values\nconst valueIsSaved=Object.values(parsedAttrs).some(attrValue=>String(attrValue).trim()===currentInputValue.trim());if(!valueIsSaved){window.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,message:\"Please save your input before adding to cart\"}}));return;}}catch(e){// If we can't parse stored attributes, we can't validate\nwindow.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,message:\"Please fill in all required fields\"}}));return;}}// Now check if there are any stored attributes at all\nif(!storedAttributes){window.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,message:\"Please fill in all required fields\"}}));return;}// Finally check if any of the stored attributes has a valid value\ntry{const parsedAttrs=JSON.parse(storedAttributes);const hasValidValue=Object.values(parsedAttrs).some(value=>value&&String(value).trim()!==\"\");if(!hasValidValue){window.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,message:\"Please fill in all required fields\"}}));return;}}catch(e){window.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,message:\"Please fill in all required fields\"}}));return;}}const lines=[getLineItem()];// Retrieve the selected country code from localStorage\nconst countryCode=localStorage.getItem(\"selectedCountryCode\");let existingCartId=localStorage.getItem(\"shopX_cart_id\");if(!BuyNowATC){if(existingCartId){try{const cartValidation=await window.shopXtools.handleCartMutation(cartQuery,{cartId:existingCartId});if(!cartValidation?.cart){localStorage.removeItem(\"shopX_cart_id\");localStorage.removeItem(\"shopXtools.cart\");existingCartId=null;}}catch(error){localStorage.removeItem(\"shopX_cart_id\");localStorage.removeItem(\"shopXtools.cart\");existingCartId=null;}}if(!existingCartId){try{const cartData=await window.shopXtools.handleCartMutation(createCartMutation,{lines,countryCode:countryCode});if(cartData?.cartCreate?.cart?.id){localStorage.setItem(\"shopX_cart_id\",cartData.cartCreate.cart.id);localStorage.setItem(\"shopXtools.cart\",JSON.stringify(cartData.cartCreate.cart));window.shopXtools.cart=cartData.cartCreate.cart;// Dispatch event after updating the cart\nwindow.dispatchEvent(new Event(\"shopXtools-cart-update\"));// Analytics\nconst currency=activeVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(activeVariant?.price?.amount||\"0\")*productQuantity).toFixed(2));const item_id=activeVariant?.id;const item_name=activeVariant?.title;const price=parseFloat(activeVariant?.price?.amount||\"0\");const activeProduct=product;// Google Analytics tracking\nif(typeof window.fcTrackGAEvent===\"function\"){// console.log(\"Tracking Add to Cart - google:\", {\n//     currency,\n//     value,\n//     items: [{\n//         item_id,\n//         item_name,\n//         price,\n//         quantity: productQuantity\n//     }]\n// });\nwindow.fcTrackGAEvent(\"add_to_cart\",{currency,value,items:[{item_id,item_name,price,quantity:productQuantity}]});}// Meta Pixel tracking\nif(typeof fbq===\"function\"){// console.log(\"Tracking Add ToCart - meta:\", {\n//     ccontent_type: 'product',\n//     content_ids: [item_id],\n//     content_name: activeProduct?.title,\n//     value,\n//     currency,\n//     contents: [{\n//         merchandiseId: item_id,\n//         price: price,\n//         quantity: productQuantity\n//     }]\n// })\nfbq(\"track\",\"AddToCart\",{content_type:\"product\",content_ids:[item_id],content_name:activeProduct?.title,value,currency,contents:[{merchandiseId:item_id,price:price,quantity:productQuantity}]});}window.shopXtools.dispatchEvent(\"checkout__changed\",{__triggerCartModal:openCart});}else{window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:\"Failed to add to cart\"}));}}catch(error){window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:error.message||\"Failed to create new cart\"}));}}else{const cartData=await window.shopXtools.handleCartMutation(addToCartMutation,{cartId:existingCartId,lines});if(cartData?.cartLinesAdd?.cart){localStorage.setItem(\"shopXtools.cart\",JSON.stringify(cartData.cartLinesAdd.cart));window.shopXtools.cart=cartData.cartLinesAdd.cart;// Dispatch event after updating the cart\nwindow.dispatchEvent(new Event(\"shopXtools-cart-update\"));// Google Analytics tracking\nconst currency=activeVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(activeVariant?.price?.amount||\"0\")*productQuantity).toFixed(2));const item_id=activeVariant?.id;const item_name=activeVariant?.title;const price=parseFloat(activeVariant?.price?.amount||\"0\");const activeProduct=product;// Google Analytics tracking\nif(typeof window.fcTrackGAEvent===\"function\"){// console.log(\"Tracking Add to Cart - google:\", {\n//     currency,\n//     value,\n//     items: [{\n//         item_id,\n//         item_name,\n//         price,\n//         quantity: productQuantity\n//     }]\n// });\nwindow.fcTrackGAEvent(\"add_to_cart\",{currency,value,items:[{item_id,item_name,price,quantity:productQuantity}]});}// Meta Pixel tracking\nif(typeof fbq===\"function\"){// console.log(\"Tracking Add ToCart - meta:\", {\n//     content_type: 'product',\n//     content_ids: [item_id],\n//     content_name: activeProduct?.title,\n//     value,\n//     currency,\n//     contents: {\n//         merchandiseId: item_id,\n//         price: price,\n//         quantity: productQuantity\n//     }\n// })\nfbq(\"track\",\"AddToCart\",{content_type:\"product\",content_ids:[item_id],content_name:activeProduct?.title,value,currency,contents:[{merchandiseId:item_id,price:price,quantity:productQuantity}]});}window.shopXtools.dispatchEvent(\"checkout__changed\",{__triggerCartModal:openCart});}else{window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:\"Failed to add to cart\"}));}}}// Directly proceed to checkout without opening the cart modal\nif(BuyNowATC){//console.log(\"Directly proceeding to checkout without opening the cart modal\")\n// Create the cart and proceed to checkout\nconst variables={lines,countryCode:countryCode};//console.log(\"Sending mutation with variables:\", variables)\nconst result=await window[\"shopXtools\"]?.handleTemporaryCartMutation(createCartMutation,variables);//console.log(\"result:\", result)\nconst checkoutUrl=result.cartCreate.cart.checkoutUrl;if(checkoutUrl){//console.log(\"checkoutUrl:\", checkoutUrl)\nlet finalCheckoutUrl=checkoutUrl;if(finalCheckoutUrl){// Analytics\nconst currency=activeVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(activeVariant?.price?.amount||\"0\")*productQuantity).toFixed(2));const item_id=activeVariant?.id;const item_name=activeVariant?.title;const price=parseFloat(activeVariant?.price?.amount||\"0\");// Google Analytics tracking\nif(typeof window.fcTrackGAEvent===\"function\"){// console.log(\"Tracking Initiate Checkout (Buy now) - google:\", {\n//     currency,\n//     value,\n//     item_id,\n//     item_name,\n//     price,\n//     quantity: productQuantity\n// });\nwindow.fcTrackGAEvent(\"begin_checkout\",{currency,value,items:[{item_id,item_name,price,quantity:productQuantity}]});}// Meta Pixel tracking\nif(typeof fbq===\"function\"){// console.log(\"Tracking Initiate Checkout (Buy now) - meta:\", {\n//     content_type: 'product',\n//     content_ids: [activeVariant?.id],\n//     value,\n//     currency,\n//     num_items: productQuantity\n// })\nfbq(\"track\",\"InitiateCheckout\",{content_type:\"product\",content_ids:[activeVariant?.id],value,currency,num_items:productQuantity});}finalCheckoutUrl=appendUTMParamsToUrl(finalCheckoutUrl);finalCheckoutUrl=appendLanguageToUrl(finalCheckoutUrl);window.location.assign(finalCheckoutUrl)// Use assign instead of href to avoid page reload and make sure it works in Safari and Chrome\n;}}else{window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:\"Failed to create cart for checkout\"}));}}if(lines[0].attributes){// const cartId = existingCartId || cartData?.cartCreate?.cart?.id;\nconst cartId=existingCartId//removed check for cartData\n;await window.shopXtools.handleCartMutation(updateCartAttributes,{cartId,attributes:lines[0].attributes});}}catch(error){window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:error.message||\"Failed to add item to cart\"}));}};useEffect(()=>{let timer;if(isLoading){setShouldShowLoading(false);timer=setTimeout(()=>{setShouldShowLoading(true);},200)// 200ms delay before showing loading state\n;}else{setShouldShowLoading(false);}return()=>{if(timer)clearTimeout(timer);};},[isLoading]);// Update loading state when product data is received\nuseEffect(()=>{if(product){setIsLoading(false);}},[product]);// Initialize hasInitialized\nuseEffect(()=>{if(!hasInitialized&&product){// Small delay to ensure we have all the necessary data\nconst timer=setTimeout(()=>{setHasInitialized(true);},50);return()=>clearTimeout(timer);}},[product]);let content=null;if(RenderTarget.current()===RenderTarget.canvas){content=available?.[0]||null// Always show available state in canvas\n;}else if(!hasInitialized){content=null;}else if(needsVariantSelection){content=SelectVariant?.[0]||null;}else if(maxQuantityReached&&props.MaxQuantityReached?.[0]){content=props.MaxQuantityReached[0];}else if(!isInStock&&!activeVariant?.availableForSale||activeVariant&&!isVariantAvailable(activeVariant)||product&&!get(product,\"variants.edges\",[]).some(({node})=>isVariantAvailable(node))||props.required&&orderFieldError){content=OutOfStock?.[0]||null;}else{content=available?.[0]||null;}// Near the bottom of the component where we create clonedElement\nconst canAddToCart=(isInStock||activeVariant&&activeVariant.availableForSale)&&!needsVariantSelection&&!maxQuantityReached&&(!props.required||!orderFieldError);const handleClick=e=>{if(canAddToCart){handleAddToCart();}};// Single consolidated effect for maxQuantityReached\nuseEffect(()=>{if(!props.maxQuantity){if(maxQuantityReached){setMaxQuantityReached(false);}return;}const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);if(!variantId||!cartExistingData?.lines?.edges){if(maxQuantityReached){setMaxQuantityReached(false);}return;}const currentQuantity=cartExistingData.lines.edges.reduce((total,{node})=>{if(node.merchandise.id===variantId){return total+node.quantity;}return total;},0);const shouldBeAtMax=currentQuantity>=props.maxQuantity;if(shouldBeAtMax!==maxQuantityReached){setMaxQuantityReached(shouldBeAtMax);}},[props.maxQuantity,activeVariant,props.shopifyProductVariantId,cartExistingData,maxQuantityReached]);const clonedElement=content?/*#__PURE__*/cloneElement(content,{style:{...content.props?.style||{},width:\"100%\",height:\"100%\",cursor:canAddToCart?\"pointer\":\"not-allowed\",transition:hasInitialized?\"opacity 0.2s ease-in-out\":\"none\",opacity:1},onClick:handleClick,\"aria-hidden\":!hasInitialized,tabIndex:hasInitialized?0:-1}):/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#666\",fontSize:\"14px\",border:\"1px dashed #ccc\",borderRadius:\"4px\"},children:\"Connect Instance\"});const debugInfo=RenderTarget.current()!==RenderTarget.canvas&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:\"100%\",left:0,background:\"#f0f0f0\",padding:\"4px\",fontSize:\"10px\",display:props.maxQuantity>0?\"block\":\"none\"},children:[\"Max: \",props.maxQuantity,\" | Current:\",\" \",getCurrentCartQuantity(activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null)),\" \",\"| At Max: \",maxQuantityReached?\"Yes\":\"No\"]});// Add this effect near the other useEffect hooks\nuseEffect(()=>{if(props.maxQuantity>0){window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:props.maxQuantity}}));}},[props.maxQuantity,props.shopifyProductID]);// Add this effect to handle cart updates\nuseEffect(()=>{if(props.maxQuantity>0&&cartExistingData){const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);const currentInCart=getCurrentCartQuantity(variantId);const remainingAllowed=Math.max(0,props.maxQuantity-currentInCart);window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:remainingAllowed}}));if(productQuantity>remainingAllowed){setProductQuantity(remainingAllowed);}}},[cartExistingData,props.maxQuantity,activeVariant,props.shopifyProductVariantId,getCurrentCartQuantity]);// Add this effect to handle quantity max reached events\nuseEffect(()=>{const handleQuantityMaxReached=event=>{const{productId,maxQuantity}=event.detail;if(productId===props.shopifyProductID){setMaxQuantityReached(true);}};window.addEventListener(\"quantityMaxReached\",handleQuantityMaxReached);return()=>window.removeEventListener(\"quantityMaxReached\",handleQuantityMaxReached);},[props.shopifyProductID]);// Modify the effect that sets initial max quantity\nuseEffect(()=>{if(props.maxQuantity>0){const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);const currentInCart=getCurrentCartQuantity(variantId);const remainingAllowed=Math.max(0,props.maxQuantity-currentInCart);window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:remainingAllowed}}));}},[props.maxQuantity,props.shopifyProductID,getCurrentCartQuantity,activeVariant,props.shopifyProductVariantId]);useEffect(()=>{if(!isBrowser)return;const handleResize=()=>{if(typeof window!==\"undefined\"&&window.__fc_autoSelectFirst!==undefined){setAutoSelectFirst(window.__fc_autoSelectFirst);}if(typeof window!==\"undefined\"&&window.__fc_activeVariantId!==undefined){const storedId=window.__fc_activeVariantId;// console.log(\"storedId\", storedId)\nif(storedId){const variants=get(product,\"variants.edges\",[]);const found=variants.find(({node})=>node.id===storedId);// console.log(\"found\", found)\nif(found)setActiveVariant(found.node);// console.log(\"setting activeVariant\", found.node)\n}}if(product){const variants=get(product,\"variants.edges\",[]);const hasMultipleVariants=variants.length>1;// console.log(\"activeVariant\", activeVariant)\nif(autoSelectFirst){setNeedsVariantSelection(false);// console.log(\"handleResize: autoSelectFirst, setting needsVariantSelection to false\");\n}else if(activeVariant){// If a variant is already selected, don't require selection\nsetNeedsVariantSelection(false);// console.log(\"handleResize: activeVariant exists, setting needsVariantSelection to false\");\n}else if(!autoSelectFirst&&hasMultipleVariants){setNeedsVariantSelection(true);// console.log(\"handleResize: !autoSelectFirst && hasMultipleVariants\", autoSelectFirst, hasMultipleVariants);\n}else{setNeedsVariantSelection(!shopifyProductVariantId&&hasMultipleVariants);//console.log(\"handleResize: !shopifyProductVariantId && hasMultipleVariants\", shopifyProductVariantId, hasMultipleVariants);\n}}};window.addEventListener(\"resize\",handleResize);return()=>{window.removeEventListener(\"resize\",handleResize);};},[isBrowser,product,activeVariant,autoSelectFirst,shopifyProductVariantId]);return /*#__PURE__*/_jsxs(\"div\",{style:{height:\"100%\",position:\"relative\"},role:\"none\",className:\"fc-purchase-button-container\",children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .fc-purchase-button-container :focus-visible {\n                    outline: ${props.focus.width}px solid ${props.focus.color} !important;\n                    outline-offset: ${props.focus.padding}px !important;\n                    border-radius: ${props.focus.radius}px !important;\n                }\n            `}),debugInfo,RenderTarget.current()===RenderTarget.canvas?// In canvas, only render the available state\navailable?.[0]&&/*#__PURE__*/cloneElement(available[0],{style:{...available[0].props?.style||{},width:\"100%\",height:\"100%\",cursor:\"pointer\",outline:\"none\"},onClick:handleClick,role:\"button\",\"aria-label\":props.BuyNowATC?\"Buy now\":\"Add to cart\"}):// In browser, render all states but only show the active one\n/*#__PURE__*/_jsxs(\"div\",{style:{height:\"100%\",position:\"relative\"},children:[available?.[0]&&/*#__PURE__*/cloneElement(available[0],{style:{...available[0].props?.style||{},width:\"100%\",height:\"100%\",cursor:canAddToCart?\"pointer\":\"not-allowed\",transition:hasInitialized?\"opacity 0.3s ease-in-out\":\"none\",opacity:content===available?.[0]?1:0,position:\"absolute\",top:0,left:0,pointerEvents:content===available?.[0]?\"auto\":\"none\",visibility:content===available?.[0]?\"visible\":\"hidden\",outline:\"none\",zIndex:content===available?.[0]?2:0,transitionDelay:content===available?.[0]?\"0s\":\"0s\"},onClick:handleClick,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();if(canAddToCart){handleClick(e);}}},role:\"button\",\"aria-disabled\":!canAddToCart,\"aria-label\":props.BuyNowATC?\"Buy now\":\"Add to cart\",tabIndex:content===available?.[0]&&hasInitialized?0:-1,\"aria-hidden\":content!==available?.[0]||!hasInitialized}),OutOfStock?.[0]&&/*#__PURE__*/cloneElement(OutOfStock[0],{style:{...OutOfStock[0].props?.style||{},width:\"100%\",height:\"100%\",cursor:\"not-allowed\",transition:hasInitialized?\"opacity 0.3s ease-in-out\":\"none\",opacity:content===OutOfStock?.[0]?1:0,position:\"absolute\",top:0,left:0,pointerEvents:content===OutOfStock?.[0]?\"auto\":\"none\",visibility:content===OutOfStock?.[0]?\"visible\":\"hidden\",outline:\"none\",zIndex:content===OutOfStock?.[0]?2:0,transitionDelay:content===OutOfStock?.[0]?\"0s\":\"0s\"},role:\"button\",\"aria-disabled\":true,\"aria-label\":\"Out of stock\",tabIndex:content===OutOfStock?.[0]&&hasInitialized?0:-1,\"aria-hidden\":content!==OutOfStock?.[0]||!hasInitialized}),SelectVariant?.[0]&&/*#__PURE__*/cloneElement(SelectVariant[0],{style:{...SelectVariant[0].props?.style||{},width:\"100%\",height:\"100%\",cursor:\"not-allowed\",transition:hasInitialized?\"opacity 0.3s ease-in-out\":\"none\",opacity:content===SelectVariant?.[0]?1:content===available?.[0]||content===OutOfStock?.[0]?1-(hasInitialized?1:0):0,position:\"absolute\",top:0,left:0,pointerEvents:content===SelectVariant?.[0]?\"auto\":\"none\",visibility:content===SelectVariant?.[0]||(content===available?.[0]||content===OutOfStock?.[0])&&hasInitialized?\"visible\":\"hidden\",outline:\"none\",zIndex:content===SelectVariant?.[0]?2:1,transitionDelay:content===SelectVariant?.[0]?\"0s\":\"0.3s\"},role:\"button\",\"aria-disabled\":true,\"aria-label\":\"Select variant\",tabIndex:content===SelectVariant?.[0]&&hasInitialized?0:-1,\"aria-hidden\":content!==SelectVariant?.[0]||!hasInitialized})]}),LoadingState?.[0]&&RenderTarget.current()!==RenderTarget.canvas&&/*#__PURE__*/cloneElement(LoadingState[0],{style:{...LoadingState[0].props?.style||{},width:\"100%\",height:\"100%\",position:\"absolute\",top:0,left:0,opacity:isLoading&&shouldShowLoading&&!props.skipLoading?1:0,pointerEvents:isLoading&&shouldShowLoading&&!props.skipLoading?\"auto\":\"none\",visibility:isLoading&&shouldShowLoading&&!props.skipLoading?\"visible\":\"hidden\",transition:\"opacity 0.2s ease-in-out\",outline:\"none\"},role:\"status\",\"aria-label\":`Loading ${props.BuyNowATC?\"buy now\":\"add to cart\"} button`,\"aria-live\":\"polite\",tabIndex:-1,\"aria-hidden\":!isLoading||!shouldShowLoading||props.skipLoading})]});}addPropertyControls(FC_ProductPurchaseButton,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS\"},shopifyProductVariantId:{type:ControlType.String,title:\"Variant ID\",description:\"Manually set a specific product variant ID (optional).\"},available:{type:ControlType.ComponentInstance,title:\"Available\"},OutOfStock:{type:ControlType.ComponentInstance,title:\"Out of Stock\"},SelectVariant:{type:ControlType.ComponentInstance,title:\"Select Variant\"},LoadingState:{type:ControlType.ComponentInstance,title:\"Loading\"},BuyNowATC:{title:\"Buy Now\",description:\"Enabling will skip the cart and go right to checkout.\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},openCart:{title:\"Trigger Cart\",description:\"Open your cart on click. If button is inside the cart, select No to keep the cart open.\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true},skipLoading:{title:\"Skip Loading\",description:\"Skip loading state\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},focus:{type:ControlType.Object,title:\"Focus\",controls:{radius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:100,step:1,displayStepper:true},width:{type:ControlType.Number,title:\"Width\",defaultValue:2,min:0,max:20,step:1,displayStepper:true},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:2,min:0,max:20,step:1,displayStepper:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#007AFF\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductPurchaseButton\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductPurchaseButton.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{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState,useCallback}from\"react\";import{get}from\"lodash-es\";/**\n * @framerDisableUnlink\n */export default function FC_ProductVariantState(props){const{shopifyProductID,textTemplate}=props;const[product,setProduct]=useState();const[selectedOptions,setSelectedOptions]=useState({});// Move handler outside useEffect for better stability\nconst handleVariantSelection=useCallback(event=>{// Directly set the new selected options\nsetSelectedOptions(prev=>({...prev,[event.detail.optionName]:event.detail.value}));},[]);useEffect(()=>{if(window[\"shopXtools\"]&&Array.isArray(window[\"shopXtools\"].products)){const _matchingProduct=window[\"shopXtools\"].products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);setProduct(_matchingProduct?_matchingProduct.node:\"404\");}else{document.addEventListener(\"data__products-ready\",e=>{if(Array.isArray(e.detail.products)){const _matchingProduct=e.detail.products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);setProduct(_matchingProduct?_matchingProduct.node:\"404\");}});}document.addEventListener(\"variant_option_selected\",handleVariantSelection);return()=>{document.removeEventListener(\"variant_option_selected\",handleVariantSelection);};},[shopifyProductID,handleVariantSelection]);useEffect(()=>{const handleCurrencyChange=event=>{const{currency}=event.detail;if(window[\"shopXtools\"]&&Array.isArray(window[\"shopXtools\"].products)){const _matchingProduct=window[\"shopXtools\"].products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);}}};window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[shopifyProductID]);const options=get(product,\"options\",[]);// Get remaining unselected options\nconst remainingOptions=options.filter(opt=>!selectedOptions[opt.name]).map(opt=>opt.name);// In Framer canvas or when shopXtools is not ready, show placeholder\nconst isFramerCanvas=typeof window===\"undefined\"||!window[\"shopXtools\"];const displayText=isFramerCanvas?textTemplate.replace(\"{{variant}}\",\"Size\"):remainingOptions.length===0?\"\":textTemplate.replace(\"{{variant}}\",remainingOptions.join(\", \"));// If no text to display, return empty div\nif(!displayText){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});}return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"p\",{style:{...props.font,color:props.color,margin:0,textAlign:\"center\",textTransform:props.textTransform},children:displayText})});}FC_ProductVariantState.defaultProps={shopifyProductID:\"\",textTemplate:\"Select {{variant}}\",textTransform:\"none\",color:\"#000000\"};addPropertyControls(FC_ProductVariantState,{shopifyProductID:{type:ControlType.String,title:\"Product ID\"},textTemplate:{type:ControlType.String,title:\"Format\",description:\"Use {{variant}} to insert the variant name\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"none\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductVariantState\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductVariantState.map","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{useRef,useEffect}from\"react\";import{addPropertyControls,ControlType,useAnimation,motion}from\"framer\";import{defaultEvents,useOnEnter,useOnExit}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";var Indicators;(function(Indicators){Indicators[\"DotWave\"]=\"Dots\";Indicators[\"Material\"]=\"Material\";Indicators[\"IOS\"]=\"iOS\";})(Indicators||(Indicators={}));const angleInRadians=angleInDegrees=>(angleInDegrees-90)*(Math.PI/180);const polarToCartesian=(centerX,centerY,radius,angleInDegrees)=>{const a=angleInRadians(angleInDegrees);return{x:centerX+radius*Math.cos(a),y:centerY+radius*Math.sin(a)};};const arc=(x,y,radius,startAngle,endAngle)=>{const fullCircle=endAngle-startAngle===360;const start=polarToCartesian(x,y,radius,endAngle-0.01);const end=polarToCartesian(x,y,radius,startAngle);const arcFlag=endAngle-startAngle<=180?\"0\":\"1\";let d=[\"M\",start.x,start.y,\"A\",radius,radius,0,arcFlag,0,end.x,end.y,].join(\" \");if(fullCircle)d+=\"z\";return d;};function Spinner({color}){const length=360;const endPercentage=length/360*100;const strokeWidth=10;const width=100;const height=100;return(/*#__PURE__*/ _jsxs(motion.div,{style:{height:\"85%\",width:\"85%\",position:\"relative\",originX:0.5,originY:0.5},animate:{rotate:360},transition:{loop:Infinity,ease:\"linear\",duration:0.5},children:[/*#__PURE__*/ _jsx(motion.svg,{style:{height:\"100%\",width:\"100%\",top:0,left:0,right:0,bottom:0,position:\"absolute\",WebkitMask:`conic-gradient(rgba(0, 0, 0, 0.0) 0%, rgba(0, 0, 0,1.0) ${endPercentage}%)`},viewBox:\"0 0 100 100\",children:/*#__PURE__*/ _jsx(\"g\",{transform:\"translate(0 0)\",children:/*#__PURE__*/ _jsx(\"path\",{d:arc(width/2,height/2,width/2-strokeWidth/2,0,length),fill:\"none\",stroke:color,strokeWidth:strokeWidth,strokeLinecap:\"round\"})})}),/*#__PURE__*/ _jsx(motion.svg,{style:{height:\"100%\",width:\"100%\",position:\"absolute\"},viewBox:\"0 0 100 100\",children:/*#__PURE__*/ _jsx(\"g\",{transform:\"translate(50 0)\",children:/*#__PURE__*/ _jsx(\"path\",{d:\"M 0 0 C 2.761 0 5 2.239 5 5 C 5 7.761 2.761 10 0 10 C 0 10 0 0 0 0 Z\",fill:color})})})]}));}// <path d=\"M 0 0 C 2.761 0 5 2.239 5 5 C 5 7.761 2.761 10 0 10 C 0 10 0 0 0 0 Z\" fill=\"#CCC\"></path>\n// function Spinner({ color }) {\n//     return (\n//         <svg style={{ height: \"85%\", width: \"85%\" }} viewBox=\"0 0 100 100\">\n//             <motion.g\n//                 transform=\"translate(3 3)\"\n//                 animate={{ rotate: 360 }}\n//                 transition={{ loop: Infinity, ease: \"linear\", duration: 1 }}\n//             >\n//                 {pathStrings.map((data, i) => {\n//                     return <path d={data} fill={color} opacity={i / pathStrings.length} />\n//                 })}\n//             </motion.g>\n//         </svg>\n//     )\n// }\nfunction DotWave({color,animation}){const circles=[0,1,2];const{delay,ease,duration,...animProps}=animation;const transition=animation.type===\"spring\"?animProps:{...animProps,ease,duration};// console.log(animProps)\nreturn(/*#__PURE__*/ _jsx(motion.svg,{style:{height:\"85%\",width:\"85%\"},viewBox:\"0 0 30 30\",variants:{show:{transition:{delayChildren:0.1,staggerChildren:0.12}}},animate:\"show\",children:circles.map(circle=>/*#__PURE__*/ _jsx(motion.circle,{style:{fill:color},variants:{hidden:{y:0},show:{y:[0,0,0,-10,0,0,0]}},transition:{...transition,yoyo:Infinity},r:3,cx:circle*10+5,cy:15},circle))}));}function Material({color,animation}){return(/*#__PURE__*/ _jsx(motion.svg,{style:{height:\"85%\",width:\"85%\",overflow:\"visible\",originX:\"50%\",originY:\"50%\"},animate:{rotate:360},transition:{ease:\"linear\",loop:Infinity,duration:2},viewBox:\"25 25 50 50\",children:/*#__PURE__*/ _jsx(motion.circle,{style:{stroke:color,strokeLinecap:\"round\"},animate:{strokeDasharray:[\"1, 200\",\"89, 200\",\"89, 200\"],strokeDashoffset:[0,-35,-124]},transition:{...animation,loop:Infinity,ease:\"easeInOut\"},cx:\"50\",cy:\"50\",r:\"20\",fill:\"none\",strokeWidth:2,strokeMiterlimit:\"10\"})}));}function IOS({color,animation}){const particles=12;// this was the death of me\nconst arrayRotate=(arr,n)=>arr.slice(n,arr.length).concat(arr.slice(0,n));const lines=[...new Array(particles)].map((l,i)=>0.9/particles*i+0.1).reverse();const lineOpacities=lines.map((l,i)=>arrayRotate(lines,i));return(/*#__PURE__*/ _jsx(motion.svg,{viewBox:\"-15 -15 30 30\",style:{width:\"100%\",height:\"100%\"},children:lineOpacities.map((lineKeyframes,i)=>/*#__PURE__*/ _jsx(motion.g,{initial:{opacity:lineKeyframes[0]},animate:{opacity:lineKeyframes},transition:{...animation,loop:Infinity,repeatDelay:0.0005},children:/*#__PURE__*/ _jsx(\"rect\",{style:{width:7,height:2,fill:color,transform:`rotate(${(particles-i)/particles*360-90}deg)`},x:5,y:-1,rx:1})},i))}));}function getIndicator(indicator,props){switch(indicator){case Indicators.DotWave:return(/*#__PURE__*/ _jsx(DotWave,{...props}));case Indicators.Material:return(/*#__PURE__*/ _jsx(Material,{...props}));case Indicators.IOS:return(/*#__PURE__*/ _jsx(IOS,{...props}));// case Indicators.Spinner:\n//     return <Spinner {...props} />\ndefault:return(/*#__PURE__*/ _jsx(DotWave,{...props}));}}export function handleTimeout(duration,callback){const id=setTimeout(callback,duration*1e3);return()=>clearTimeout(id);}/**\n * Loading\n *\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export function Loading(props){const{duration,onTimeout,fadeOut,hasDuration,indicator,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,style}=props;const controls=useAnimation();const animDuration=fadeOut?Math.min(duration,0.35):0;const animDelay=fadeOut?duration-animDuration:duration;const currentIndicator=getIndicator(indicator,props);const handlers=useRef([]);const onFadeOut=React.useCallback(()=>{if(hasDuration)controls.start({opacity:0,transition:{duration:animDuration,ease:\"easeIn\"}});},[hasDuration,animDuration]);const resetOpacity=async()=>{controls.set({opacity:1});};useOnEnter(()=>{resetOpacity();if(hasDuration)handlers.current=[handleTimeout(duration,onTimeout),handleTimeout(animDelay,onFadeOut),];});// Cancel all timers on exit.\nuseOnExit(()=>handlers.current.forEach(cleanup=>cleanup));// Cancel all timers on unmount.\nuseEffect(()=>()=>handlers.current.forEach(cleanup=>cleanup),[]);return(/*#__PURE__*/ _jsx(motion.div,{onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,animate:controls,style:{position:\"relative\",overflow:\"show\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",...style},children:currentIndicator}));}Loading.defaultProps={height:40,width:40,duration:2,color:\"#888\",animation:{type:\"tween\",ease:\"linear\",duration:1.3},hasDuration:false};// Learn more: https://framer.com/api/property-controls/\naddPropertyControls(Loading,{indicator:{title:\"Indicator\",type:ControlType.Enum,options:Object.keys(Indicators).map(i=>Indicators[i])},color:{type:ControlType.Color,defaultValue:\"#888\"},// transition: { title: \"Animation\", type: ControlType.Transition },\nhasDuration:{title:\"Duration\",type:ControlType.Boolean,defaultValue:Loading.defaultProps.hasDuration,enabledTitle:\"Timeout\",disabledTitle:\"Infinity\"},duration:{title:\"Time\",hidden:({hasDuration})=>!hasDuration,min:0.1,max:10,defaultValue:Loading.defaultProps.duration,type:ControlType.Number,step:0.1},animation:{type:ControlType.Transition},fadeOut:{title:\"Fade Out\",hidden:({hasDuration})=>!hasDuration,type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},onTimeout:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"handleTimeout\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Loading\":{\"type\":\"reactComponent\",\"name\":\"Loading\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"40\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Loading.map","// Generated by Framer (6464825)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_ProductVariantState from\"https://framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js\";import FC_ProductPrice from\"https://framerusercontent.com/modules/N07JJZfuMtyHijtiRRgH/WxKb8BNVAs4oPsnCv1Q7/FC_ProductPrice.js\";import{Loading}from\"https://framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js\";const FC_ProductPriceFonts=getFonts(FC_ProductPrice);const FC_ProductVariantStateFonts=getFonts(FC_ProductVariantState);const LoadingFonts=getFonts(Loading);const enabledGestures={QJCw9SkXY:{hover:true}};const cycleOrder=[\"QJCw9SkXY\",\"dmdMcKv2i\",\"NmLmXO_cJ\",\"Nqxk7alUZ\"];const serializationHash=\"framer-64ZZs\";const variantClassNames={dmdMcKv2i:\"framer-v-1gc19c4\",NmLmXO_cJ:\"framer-v-x8dtux\",Nqxk7alUZ:\"framer-v-1es64tt\",QJCw9SkXY:\"framer-v-1nj3sh5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};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 Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Add to Cart\":\"QJCw9SkXY\",\"Out of Stock\":\"NmLmXO_cJ\",\"Select Variant\":\"dmdMcKv2i\",Loading:\"Nqxk7alUZ\"};const getProps=({height,id,productID,width,...props})=>{return{...props,elgRTGdr9:productID??props.elgRTGdr9,variant:humanReadableVariantMap[props.variant]??props.variant??\"QJCw9SkXY\"};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,elgRTGdr9,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"QJCw9SkXY\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"dmdMcKv2i\",\"NmLmXO_cJ\",\"Nqxk7alUZ\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"dmdMcKv2i\")return true;return false;};const isDisplayed2=()=>{if(baseVariant===\"NmLmXO_cJ\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"Nqxk7alUZ\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1nj3sh5\",className,classNames),\"data-framer-name\":\"Add to Cart\",layoutDependency:layoutDependency,layoutId:\"QJCw9SkXY\",ref:refBinding,style:{backgroundColor:\"var(--token-2de60d55-30ed-45f4-87e6-158824b868d3, rgb(0, 0, 0))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{\"QJCw9SkXY-hover\":{backgroundColor:\"rgb(66, 66, 66)\"},dmdMcKv2i:{backgroundColor:\"rgb(235, 235, 235)\"},NmLmXO_cJ:{backgroundColor:\"rgb(235, 235, 235)\"},Nqxk7alUZ:{backgroundColor:\"rgb(235, 235, 235)\"}},...addPropertyOverrides({\"QJCw9SkXY-hover\":{\"data-framer-name\":undefined},dmdMcKv2i:{\"data-framer-name\":\"Select Variant\"},NmLmXO_cJ:{\"data-framer-name\":\"Out of Stock\"},Nqxk7alUZ:{\"data-framer-name\":\"Loading\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItVmFyaWFibGVWRj1JbTl3YzNvaUlETXlMQ0FpZDJkb2RDSWdOVFUx\",\"--framer-font-family\":'\"Inter Variable\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-variation-axes\":'var(--extracted-2gg91v, \"opsz\" 32, \"wght\" 555)',\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255)))\"},children:\"ADD TO CART\"})}),className:\"framer-15g80j5\",fonts:[\"Inter-Variable\"],layoutDependency:layoutDependency,layoutId:\"HgGaQENZb\",style:{\"--extracted-2gg91v\":'\"opsz\" 32, \"wght\" 555',\"--extracted-r6o4lv\":\"var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-6i32wt-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"DFhBUAacw-container\",nodeId:\"DFhBUAacw\",rendersWithMotion:true,scopeId:\"BUYG9ywcx\",children:/*#__PURE__*/_jsx(FC_ProductPrice,{canvasPrice:\"50.00\",format:{currencyCode:\"USD\",showCurrency:true,showDecimals:\"Always show\",showSymbol:true},height:\"100%\",id:\"DFhBUAacw\",layoutId:\"DFhBUAacw\",regularColor:\"rgb(255, 255, 255)\",regularFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},saleColor:\"rgb(255, 255, 255)\",saleFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},shopifyProductID:elgRTGdr9,width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-10m5bs4-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"euwoYDzXO-container\",nodeId:\"euwoYDzXO\",rendersWithMotion:true,scopeId:\"BUYG9ywcx\",children:/*#__PURE__*/_jsx(FC_ProductVariantState,{color:\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"12px\",fontStyle:\"normal\",fontWeight:600,letterSpacing:\"-0.01em\",lineHeight:\"1em\"},height:\"100%\",id:\"euwoYDzXO\",layoutId:\"euwoYDzXO\",shopifyProductID:elgRTGdr9,textTemplate:\"Select {{variant}}\",textTransform:\"None\",width:\"100%\"})})}),isDisplayed2()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48)))\"},children:\"FORA DE ESTOQUE\"})}),className:\"framer-ou6sff\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"SK4sN7jaJ\",style:{\"--extracted-r6o4lv\":\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-12fzf9k-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"iA3MxfWMr-container\",nodeId:\"iA3MxfWMr\",rendersWithMotion:true,scopeId:\"BUYG9ywcx\",children:/*#__PURE__*/_jsx(Loading,{animation:{delay:0,duration:1.3,ease:[.44,0,.56,1],type:\"tween\"},color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\",duration:2,fadeOut:true,hasDuration:false,height:\"100%\",id:\"iA3MxfWMr\",indicator:\"Material\",layoutId:\"iA3MxfWMr\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-64ZZs.framer-18zjtsg, .framer-64ZZs .framer-18zjtsg { display: block; }\",\".framer-64ZZs.framer-1nj3sh5 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; height: 56px; justify-content: space-between; overflow: hidden; padding: 0px 24px 0px 24px; position: relative; width: 300px; will-change: var(--framer-will-change-override, transform); }\",\".framer-64ZZs .framer-15g80j5 { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-64ZZs .framer-6i32wt-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-64ZZs .framer-10m5bs4-container { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; width: auto; }\",\".framer-64ZZs .framer-ou6sff { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-64ZZs .framer-12fzf9k-container { flex: none; height: 32px; position: relative; width: 32px; }\",\".framer-64ZZs.framer-v-1gc19c4.framer-1nj3sh5, .framer-64ZZs.framer-v-1es64tt.framer-1nj3sh5 { cursor: unset; gap: 0px; justify-content: center; }\",\".framer-64ZZs.framer-v-x8dtux.framer-1nj3sh5 { cursor: unset; gap: 0px; justify-content: center; width: min-content; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 56\n * @framerIntrinsicWidth 300\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"dmdMcKv2i\":{\"layout\":[\"fixed\",\"fixed\"]},\"NmLmXO_cJ\":{\"layout\":[\"auto\",\"fixed\"]},\"Nqxk7alUZ\":{\"layout\":[\"fixed\",\"fixed\"]},\"DJAYQX8Xw\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"elgRTGdr9\":\"productID\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerBUYG9ywcx=withCSS(Component,css,\"framer-64ZZs\");export default FramerBUYG9ywcx;FramerBUYG9ywcx.displayName=\"FC Out of Stock State\";FramerBUYG9ywcx.defaultProps={height:56,width:300};addPropertyControls(FramerBUYG9ywcx,{variant:{options:[\"QJCw9SkXY\",\"dmdMcKv2i\",\"NmLmXO_cJ\",\"Nqxk7alUZ\"],optionTitles:[\"Add to Cart\",\"Select Variant\",\"Out of Stock\",\"Loading\"],title:\"Variant\",type:ControlType.Enum},elgRTGdr9:{defaultValue:\"\",title:\"Product ID\",type:ControlType.String}});const variationAxes=[{defaultValue:14,maxValue:32,minValue:14,name:\"Optical size\",tag:\"opsz\"},{defaultValue:400,maxValue:900,minValue:100,name:\"Weight\",tag:\"wght\"}];addFonts(FramerBUYG9ywcx,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mYcqTSergLb16PdbJJQMl9ebYm4.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ZRl8AlxwsX1m7xS1eJCiSPbztg.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/nhSQpBRqFmXNUBY2p5SENQ8NplQ.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/DYHjxG0qXjopUuruoacfl5SA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/s7NH6sl7w4NU984r5hcmo1tPSYo.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/7lw0VWkeXrGYJT05oB3DsFy8BaY.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/wx5nfqEgOXnxuFaxB0Mn9OhmcZA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...FC_ProductPriceFonts,...FC_ProductVariantStateFonts,...LoadingFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerBUYG9ywcx\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"300\",\"framerIntrinsicHeight\":\"56\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"elgRTGdr9\\\":\\\"productID\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"dmdMcKv2i\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"NmLmXO_cJ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Nqxk7alUZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"DJAYQX8Xw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BUYG9ywcx.map","// Generated by Framer (6464825)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_ProductVariantState from\"https://framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js\";import FC_ProductPrice from\"https://framerusercontent.com/modules/N07JJZfuMtyHijtiRRgH/WxKb8BNVAs4oPsnCv1Q7/FC_ProductPrice.js\";import{Loading}from\"https://framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js\";const FC_ProductPriceFonts=getFonts(FC_ProductPrice);const FC_ProductVariantStateFonts=getFonts(FC_ProductVariantState);const LoadingFonts=getFonts(Loading);const enabledGestures={UsAXPyiHn:{hover:true}};const cycleOrder=[\"UsAXPyiHn\",\"AmXVeNCXO\",\"Ki48bXw7Z\",\"JZGzNvYsV\"];const serializationHash=\"framer-HsmK9\";const variantClassNames={AmXVeNCXO:\"framer-v-sjebdr\",JZGzNvYsV:\"framer-v-92a5s\",Ki48bXw7Z:\"framer-v-1wn4htb\",UsAXPyiHn:\"framer-v-1mc1iq8\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};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 Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Add to Cart\":\"UsAXPyiHn\",\"Out of Stock\":\"Ki48bXw7Z\",\"Select Variant\":\"AmXVeNCXO\",Loading:\"JZGzNvYsV\"};const getProps=({height,id,productID,width,...props})=>{return{...props,elgRTGdr9:productID??props.elgRTGdr9,variant:humanReadableVariantMap[props.variant]??props.variant??\"UsAXPyiHn\"};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,elgRTGdr9,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"UsAXPyiHn\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"AmXVeNCXO\",\"Ki48bXw7Z\",\"JZGzNvYsV\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"AmXVeNCXO\")return true;return false;};const isDisplayed2=()=>{if(baseVariant===\"Ki48bXw7Z\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"JZGzNvYsV\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1mc1iq8\",className,classNames),\"data-framer-name\":\"Add to Cart\",layoutDependency:layoutDependency,layoutId:\"UsAXPyiHn\",ref:refBinding,style:{backgroundColor:\"var(--token-2de60d55-30ed-45f4-87e6-158824b868d3, rgb(0, 0, 0))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{\"UsAXPyiHn-hover\":{backgroundColor:\"rgb(66, 66, 66)\"},AmXVeNCXO:{backgroundColor:\"rgb(235, 235, 235)\"},JZGzNvYsV:{backgroundColor:\"rgb(235, 235, 235)\"},Ki48bXw7Z:{backgroundColor:\"rgb(235, 235, 235)\"}},...addPropertyOverrides({\"UsAXPyiHn-hover\":{\"data-framer-name\":undefined},AmXVeNCXO:{\"data-framer-name\":\"Select Variant\"},JZGzNvYsV:{\"data-framer-name\":\"Loading\"},Ki48bXw7Z:{\"data-framer-name\":\"Out of Stock\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItVmFyaWFibGVWRj1JbTl3YzNvaUlETXlMQ0FpZDJkb2RDSWdOVFUx\",\"--framer-font-family\":'\"Inter Variable\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-variation-axes\":'var(--extracted-2gg91v, \"opsz\" 32, \"wght\" 555)',\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255)))\"},children:\"ADD TO CART\"})}),className:\"framer-1k2og41\",fonts:[\"Inter-Variable\"],layoutDependency:layoutDependency,layoutId:\"v7zli2d4Z\",style:{\"--extracted-2gg91v\":'\"opsz\" 32, \"wght\" 555',\"--extracted-r6o4lv\":\"var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1gz26yq-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"WUPrwJBGF-container\",nodeId:\"WUPrwJBGF\",rendersWithMotion:true,scopeId:\"DkbGplAGc\",children:/*#__PURE__*/_jsx(FC_ProductPrice,{canvasPrice:\"50.00\",format:{currencyCode:\"USD\",showCurrency:true,showDecimals:\"Always show\",showSymbol:true},height:\"100%\",id:\"WUPrwJBGF\",layoutId:\"WUPrwJBGF\",regularColor:\"rgb(255, 255, 255)\",regularFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},saleColor:\"rgb(255, 255, 255)\",saleFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},shopifyProductID:elgRTGdr9,width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-17p3ui2-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"gkK_NFy89-container\",nodeId:\"gkK_NFy89\",rendersWithMotion:true,scopeId:\"DkbGplAGc\",children:/*#__PURE__*/_jsx(FC_ProductVariantState,{color:\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"12px\",fontStyle:\"normal\",fontWeight:600,letterSpacing:\"-0.01em\",lineHeight:\"1em\"},height:\"100%\",id:\"gkK_NFy89\",layoutId:\"gkK_NFy89\",shopifyProductID:elgRTGdr9,textTemplate:\"Selecione {{variant}}\",textTransform:\"None\",width:\"100%\"})})}),isDisplayed2()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48)))\"},children:\"OUT OF STOCK\"})}),className:\"framer-1mhxriz\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"wLdVFZbPZ\",style:{\"--extracted-r6o4lv\":\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ew7age-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"L_r3RpduD-container\",nodeId:\"L_r3RpduD\",rendersWithMotion:true,scopeId:\"DkbGplAGc\",children:/*#__PURE__*/_jsx(Loading,{animation:{delay:0,duration:1.3,ease:[.44,0,.56,1],type:\"tween\"},color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\",duration:2,fadeOut:true,hasDuration:false,height:\"100%\",id:\"L_r3RpduD\",indicator:\"Material\",layoutId:\"L_r3RpduD\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-HsmK9.framer-j3589k, .framer-HsmK9 .framer-j3589k { display: block; }\",\".framer-HsmK9.framer-1mc1iq8 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; height: 56px; justify-content: space-between; overflow: hidden; padding: 0px 24px 0px 24px; position: relative; width: 300px; will-change: var(--framer-will-change-override, transform); }\",\".framer-HsmK9 .framer-1k2og41 { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-HsmK9 .framer-1gz26yq-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-HsmK9 .framer-17p3ui2-container { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; width: auto; }\",\".framer-HsmK9 .framer-1mhxriz { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-HsmK9 .framer-1ew7age-container { flex: none; height: 32px; position: relative; width: 32px; }\",\".framer-HsmK9.framer-v-sjebdr.framer-1mc1iq8 { cursor: unset; gap: 0px; justify-content: center; width: min-content; }\",\".framer-HsmK9.framer-v-1wn4htb.framer-1mc1iq8, .framer-HsmK9.framer-v-92a5s.framer-1mc1iq8 { cursor: unset; gap: 0px; justify-content: center; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 56\n * @framerIntrinsicWidth 300\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"AmXVeNCXO\":{\"layout\":[\"auto\",\"fixed\"]},\"Ki48bXw7Z\":{\"layout\":[\"fixed\",\"fixed\"]},\"JZGzNvYsV\":{\"layout\":[\"fixed\",\"fixed\"]},\"RY6nfWsVO\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"elgRTGdr9\":\"productID\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerDkbGplAGc=withCSS(Component,css,\"framer-HsmK9\");export default FramerDkbGplAGc;FramerDkbGplAGc.displayName=\"FC Add Select Variant State\";FramerDkbGplAGc.defaultProps={height:56,width:300};addPropertyControls(FramerDkbGplAGc,{variant:{options:[\"UsAXPyiHn\",\"AmXVeNCXO\",\"Ki48bXw7Z\",\"JZGzNvYsV\"],optionTitles:[\"Add to Cart\",\"Select Variant\",\"Out of Stock\",\"Loading\"],title:\"Variant\",type:ControlType.Enum},elgRTGdr9:{defaultValue:\"\",title:\"Product ID\",type:ControlType.String}});const variationAxes=[{defaultValue:14,maxValue:32,minValue:14,name:\"Optical size\",tag:\"opsz\"},{defaultValue:400,maxValue:900,minValue:100,name:\"Weight\",tag:\"wght\"}];addFonts(FramerDkbGplAGc,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mYcqTSergLb16PdbJJQMl9ebYm4.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ZRl8AlxwsX1m7xS1eJCiSPbztg.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/nhSQpBRqFmXNUBY2p5SENQ8NplQ.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/DYHjxG0qXjopUuruoacfl5SA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/s7NH6sl7w4NU984r5hcmo1tPSYo.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/7lw0VWkeXrGYJT05oB3DsFy8BaY.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/wx5nfqEgOXnxuFaxB0Mn9OhmcZA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...FC_ProductPriceFonts,...FC_ProductVariantStateFonts,...LoadingFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerDkbGplAGc\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"56\",\"framerIntrinsicWidth\":\"300\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"AmXVeNCXO\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Ki48bXw7Z\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"JZGzNvYsV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"RY6nfWsVO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"elgRTGdr9\\\":\\\"productID\\\"}\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DkbGplAGc.map","// Generated by Framer (2797bee)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_ProductVariantState from\"https://framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js\";import{Loading}from\"https://framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js\";const FC_ProductVariantStateFonts=getFonts(FC_ProductVariantState);const LoadingFonts=getFonts(Loading);const enabledGestures={wqkXDYaGC:{hover:true}};const cycleOrder=[\"wqkXDYaGC\",\"HxD5uO2e_\",\"vX3dGF5iF\",\"bdJ9bqXQM\"];const serializationHash=\"framer-iPPV3\";const variantClassNames={bdJ9bqXQM:\"framer-v-1jdjvzo\",HxD5uO2e_:\"framer-v-mrzdkt\",vX3dGF5iF:\"framer-v-1mhz6t2\",wqkXDYaGC:\"framer-v-pst1jr\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};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 Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Add to Cart\":\"wqkXDYaGC\",\"Out of Stock\":\"vX3dGF5iF\",\"Select Variant\":\"HxD5uO2e_\",Loading:\"bdJ9bqXQM\"};const getProps=({height,id,productID,width,...props})=>{return{...props,elgRTGdr9:productID??props.elgRTGdr9,variant:humanReadableVariantMap[props.variant]??props.variant??\"wqkXDYaGC\"};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,elgRTGdr9,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"wqkXDYaGC\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"HxD5uO2e_\",\"vX3dGF5iF\",\"bdJ9bqXQM\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"HxD5uO2e_\")return true;return false;};const isDisplayed2=()=>{if(baseVariant===\"vX3dGF5iF\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"bdJ9bqXQM\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-pst1jr\",className,classNames),\"data-framer-name\":\"Add to Cart\",layoutDependency:layoutDependency,layoutId:\"wqkXDYaGC\",ref:refBinding,style:{backgroundColor:\"var(--token-2de60d55-30ed-45f4-87e6-158824b868d3, rgb(0, 0, 0))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{\"wqkXDYaGC-hover\":{backgroundColor:\"rgb(66, 66, 66)\"},bdJ9bqXQM:{backgroundColor:\"rgb(235, 235, 235)\"},HxD5uO2e_:{backgroundColor:\"rgb(235, 235, 235)\"},vX3dGF5iF:{backgroundColor:\"rgb(235, 235, 235)\"}},...addPropertyOverrides({\"wqkXDYaGC-hover\":{\"data-framer-name\":undefined},bdJ9bqXQM:{\"data-framer-name\":\"Loading\"},HxD5uO2e_:{\"data-framer-name\":\"Select Variant\"},vX3dGF5iF:{\"data-framer-name\":\"Out of Stock\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1Byb3hpbWEgTm92YSBSZWd1bGFy\",\"--framer-font-family\":'\"Proxima Nova Regular\", \"Proxima Nova Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Comprar\"})}),className:\"framer-caqlwb\",fonts:[\"CUSTOM;Proxima Nova Regular\"],layoutDependency:layoutDependency,layoutId:\"WioFiaJyh\",style:{\"--extracted-r6o4lv\":\"var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-171mkl4-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"epasDfset-container\",nodeId:\"epasDfset\",rendersWithMotion:true,scopeId:\"Jw2cfObWm\",children:/*#__PURE__*/_jsx(FC_ProductVariantState,{color:\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"12px\",fontStyle:\"normal\",fontWeight:600,letterSpacing:\"-0.01em\",lineHeight:\"1em\"},height:\"100%\",id:\"epasDfset\",layoutId:\"epasDfset\",shopifyProductID:elgRTGdr9,textTemplate:\"Select {{variant}}\",textTransform:\"None\",width:\"100%\"})})}),isDisplayed2()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48)))\"},children:\"OUT OF STOCK\"})}),className:\"framer-1x5lyim\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"gvlaCgiE2\",style:{\"--extracted-r6o4lv\":\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-cuhsid-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"WXXKGaAI0-container\",nodeId:\"WXXKGaAI0\",rendersWithMotion:true,scopeId:\"Jw2cfObWm\",children:/*#__PURE__*/_jsx(Loading,{animation:{delay:0,duration:1.3,ease:[.44,0,.56,1],type:\"tween\"},color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\",duration:2,fadeOut:true,hasDuration:false,height:\"100%\",id:\"WXXKGaAI0\",indicator:\"Material\",layoutId:\"WXXKGaAI0\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-iPPV3.framer-mrodsv, .framer-iPPV3 .framer-mrodsv { display: block; }\",\".framer-iPPV3.framer-pst1jr { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 12px 24px 12px 24px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-iPPV3 .framer-caqlwb { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-iPPV3 .framer-171mkl4-container { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; width: auto; }\",\".framer-iPPV3 .framer-1x5lyim { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-iPPV3 .framer-cuhsid-container { flex: none; height: 32px; position: relative; width: 32px; }\",\".framer-iPPV3.framer-v-mrzdkt.framer-pst1jr, .framer-iPPV3.framer-v-1mhz6t2.framer-pst1jr, .framer-iPPV3.framer-v-1jdjvzo.framer-pst1jr { cursor: unset; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 38\n * @framerIntrinsicWidth 113\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"HxD5uO2e_\":{\"layout\":[\"auto\",\"auto\"]},\"vX3dGF5iF\":{\"layout\":[\"auto\",\"auto\"]},\"bdJ9bqXQM\":{\"layout\":[\"auto\",\"auto\"]},\"PCu5lx6UA\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"elgRTGdr9\":\"productID\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerJw2cfObWm=withCSS(Component,css,\"framer-iPPV3\");export default FramerJw2cfObWm;FramerJw2cfObWm.displayName=\"FC Add To Cart State\";FramerJw2cfObWm.defaultProps={height:38,width:113};addPropertyControls(FramerJw2cfObWm,{variant:{options:[\"wqkXDYaGC\",\"HxD5uO2e_\",\"vX3dGF5iF\",\"bdJ9bqXQM\"],optionTitles:[\"Add to Cart\",\"Select Variant\",\"Out of Stock\",\"Loading\"],title:\"Variant\",type:ControlType.Enum},elgRTGdr9:{defaultValue:\"\",title:\"Product ID\",type:ControlType.String}});addFonts(FramerJw2cfObWm,[{explicitInter:true,fonts:[{family:\"Proxima Nova Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/r1AV8eB9y57CWF9ubB08cNUK5XY.woff2\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...FC_ProductVariantStateFonts,...LoadingFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerJw2cfObWm\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"HxD5uO2e_\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"vX3dGF5iF\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"bdJ9bqXQM\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"PCu5lx6UA\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"38\",\"framerVariables\":\"{\\\"elgRTGdr9\\\":\\\"productID\\\"}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"113\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Jw2cfObWm.map","// Generated by Framer (6464825)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_ProductVariantState from\"https://framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js\";import FC_ProductPrice from\"https://framerusercontent.com/modules/N07JJZfuMtyHijtiRRgH/WxKb8BNVAs4oPsnCv1Q7/FC_ProductPrice.js\";import{Loading}from\"https://framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js\";const FC_ProductPriceFonts=getFonts(FC_ProductPrice);const FC_ProductVariantStateFonts=getFonts(FC_ProductVariantState);const LoadingFonts=getFonts(Loading);const enabledGestures={ImRZ62jp9:{hover:true}};const cycleOrder=[\"ImRZ62jp9\",\"JySuspvEU\",\"RBnUWzb3y\",\"m3PxgqSWs\"];const serializationHash=\"framer-A3pFJ\";const variantClassNames={ImRZ62jp9:\"framer-v-ok0l6k\",JySuspvEU:\"framer-v-1jydbqs\",m3PxgqSWs:\"framer-v-13irk7x\",RBnUWzb3y:\"framer-v-1db1jgj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};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 Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Add to Cart\":\"ImRZ62jp9\",\"Out of Stock\":\"RBnUWzb3y\",\"Select Variant\":\"JySuspvEU\",Loading:\"m3PxgqSWs\"};const getProps=({height,id,productID,width,...props})=>{return{...props,elgRTGdr9:productID??props.elgRTGdr9,variant:humanReadableVariantMap[props.variant]??props.variant??\"ImRZ62jp9\"};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,elgRTGdr9,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"ImRZ62jp9\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"JySuspvEU\",\"RBnUWzb3y\",\"m3PxgqSWs\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"JySuspvEU\")return true;return false;};const isDisplayed2=()=>{if(baseVariant===\"RBnUWzb3y\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"m3PxgqSWs\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-ok0l6k\",className,classNames),\"data-framer-name\":\"Add to Cart\",layoutDependency:layoutDependency,layoutId:\"ImRZ62jp9\",ref:refBinding,style:{backgroundColor:\"var(--token-2de60d55-30ed-45f4-87e6-158824b868d3, rgb(0, 0, 0))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{\"ImRZ62jp9-hover\":{backgroundColor:\"rgb(66, 66, 66)\"},JySuspvEU:{backgroundColor:\"rgb(235, 235, 235)\"},m3PxgqSWs:{backgroundColor:\"rgb(235, 235, 235)\"},RBnUWzb3y:{backgroundColor:\"rgb(235, 235, 235)\"}},...addPropertyOverrides({\"ImRZ62jp9-hover\":{\"data-framer-name\":undefined},JySuspvEU:{\"data-framer-name\":\"Select Variant\"},m3PxgqSWs:{\"data-framer-name\":\"Loading\"},RBnUWzb3y:{\"data-framer-name\":\"Out of Stock\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItVmFyaWFibGVWRj1JbTl3YzNvaUlETXlMQ0FpZDJkb2RDSWdOVFUx\",\"--framer-font-family\":'\"Inter Variable\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-variation-axes\":'var(--extracted-2gg91v, \"opsz\" 32, \"wght\" 555)',\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255)))\"},children:\"ADD TO CART\"})}),className:\"framer-1ivf3k3\",fonts:[\"Inter-Variable\"],layoutDependency:layoutDependency,layoutId:\"h3FSLAOGI\",style:{\"--extracted-2gg91v\":'\"opsz\" 32, \"wght\" 555',\"--extracted-r6o4lv\":\"var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-jd2um2-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"l1GFJJqbX-container\",nodeId:\"l1GFJJqbX\",rendersWithMotion:true,scopeId:\"OOz_ikM7Q\",children:/*#__PURE__*/_jsx(FC_ProductPrice,{canvasPrice:\"50.00\",format:{currencyCode:\"USD\",showCurrency:true,showDecimals:\"Always show\",showSymbol:true},height:\"100%\",id:\"l1GFJJqbX\",layoutId:\"l1GFJJqbX\",regularColor:\"rgb(255, 255, 255)\",regularFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},saleColor:\"rgb(255, 255, 255)\",saleFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1em\"},shopifyProductID:elgRTGdr9,width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-m4t11r-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"cHRBKdIz0-container\",nodeId:\"cHRBKdIz0\",rendersWithMotion:true,scopeId:\"OOz_ikM7Q\",children:/*#__PURE__*/_jsx(FC_ProductVariantState,{color:\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"12px\",fontStyle:\"normal\",fontWeight:600,letterSpacing:\"-0.01em\",lineHeight:\"1em\"},height:\"100%\",id:\"cHRBKdIz0\",layoutId:\"cHRBKdIz0\",shopifyProductID:elgRTGdr9,textTemplate:\"Select {{variant}}\",textTransform:\"None\",width:\"100%\"})})}),isDisplayed2()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48)))\"},children:\"OUT OF STOCK\"})}),className:\"framer-zbqdra\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"blffwl9v2\",style:{\"--extracted-r6o4lv\":\"var(--token-25dffb6f-7224-457b-8095-a82c7fa5a8b9, rgba(0, 0, 0, 0.48))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1pxnguv-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"lJqsl69II-container\",nodeId:\"lJqsl69II\",rendersWithMotion:true,scopeId:\"OOz_ikM7Q\",children:/*#__PURE__*/_jsx(Loading,{animation:{delay:0,duration:1.3,ease:[.44,0,.56,1],type:\"tween\"},color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\",duration:2,fadeOut:true,hasDuration:false,height:\"100%\",id:\"lJqsl69II\",indicator:\"Material\",layoutId:\"lJqsl69II\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-A3pFJ.framer-tu8257, .framer-A3pFJ .framer-tu8257 { display: block; }\",\".framer-A3pFJ.framer-ok0l6k { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; height: 56px; justify-content: space-between; overflow: hidden; padding: 0px 24px 0px 24px; position: relative; width: 300px; will-change: var(--framer-will-change-override, transform); }\",\".framer-A3pFJ .framer-1ivf3k3 { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-A3pFJ .framer-jd2um2-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-A3pFJ .framer-m4t11r-container { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; width: auto; }\",\".framer-A3pFJ .framer-zbqdra { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-A3pFJ .framer-1pxnguv-container { flex: none; height: 32px; position: relative; width: 32px; }\",\".framer-A3pFJ.framer-v-1jydbqs.framer-ok0l6k, .framer-A3pFJ.framer-v-1db1jgj.framer-ok0l6k { cursor: unset; gap: 0px; justify-content: center; }\",\".framer-A3pFJ.framer-v-13irk7x.framer-ok0l6k { cursor: unset; gap: 0px; justify-content: center; width: min-content; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 56\n * @framerIntrinsicWidth 300\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"JySuspvEU\":{\"layout\":[\"fixed\",\"fixed\"]},\"RBnUWzb3y\":{\"layout\":[\"fixed\",\"fixed\"]},\"m3PxgqSWs\":{\"layout\":[\"auto\",\"fixed\"]},\"pvtPXsh3a\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"elgRTGdr9\":\"productID\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerOOz_ikM7Q=withCSS(Component,css,\"framer-A3pFJ\");export default FramerOOz_ikM7Q;FramerOOz_ikM7Q.displayName=\"FC Loading State\";FramerOOz_ikM7Q.defaultProps={height:56,width:300};addPropertyControls(FramerOOz_ikM7Q,{variant:{options:[\"ImRZ62jp9\",\"JySuspvEU\",\"RBnUWzb3y\",\"m3PxgqSWs\"],optionTitles:[\"Add to Cart\",\"Select Variant\",\"Out of Stock\",\"Loading\"],title:\"Variant\",type:ControlType.Enum},elgRTGdr9:{defaultValue:\"\",title:\"Product ID\",type:ControlType.String}});const variationAxes=[{defaultValue:14,maxValue:32,minValue:14,name:\"Optical size\",tag:\"opsz\"},{defaultValue:400,maxValue:900,minValue:100,name:\"Weight\",tag:\"wght\"}];addFonts(FramerOOz_ikM7Q,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mYcqTSergLb16PdbJJQMl9ebYm4.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ZRl8AlxwsX1m7xS1eJCiSPbztg.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/nhSQpBRqFmXNUBY2p5SENQ8NplQ.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/DYHjxG0qXjopUuruoacfl5SA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/s7NH6sl7w4NU984r5hcmo1tPSYo.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/7lw0VWkeXrGYJT05oB3DsFy8BaY.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/wx5nfqEgOXnxuFaxB0Mn9OhmcZA.woff2\",variationAxes,weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...FC_ProductPriceFonts,...FC_ProductVariantStateFonts,...LoadingFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerOOz_ikM7Q\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"elgRTGdr9\\\":\\\"productID\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"300\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"JySuspvEU\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"RBnUWzb3y\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"m3PxgqSWs\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"pvtPXsh3a\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"56\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OOz_ikM7Q.map","// Generated by Framer (2797bee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_ProductPurchaseButton from\"https://framerusercontent.com/modules/DfixsupJND2Hhr1xcPbk/P1uTNJ4X5IvWqLbsiuve/FC_ProductPurchaseButton.js\";import FCOutOfStockState from\"https://framerusercontent.com/modules/VIVKyf9rGdoFWqtCu8Qu/rFK3Im131xEQHyznE0Qa/BUYG9ywcx.js\";import FCAddSelectVariantState from\"https://framerusercontent.com/modules/BOkvLo5KbEAi5iqOtk2L/Q6Ei0M6at2JryO2a3V9z/DkbGplAGc.js\";import FCAddToCartState from\"https://framerusercontent.com/modules/NDoBhsfo4VwSdvU1hJ7r/i5l1eY4gDDYlXGbRSjlE/Jw2cfObWm.js\";import FCLoadingState from\"https://framerusercontent.com/modules/qVeGhEdbXLSSAkdWfP0e/nJvpac2pUzMVSE4ifIOU/OOz_ikM7Q.js\";const FCAddToCartStateFonts=getFonts(FCAddToCartState);const FCOutOfStockStateFonts=getFonts(FCOutOfStockState);const FCAddSelectVariantStateFonts=getFonts(FCAddSelectVariantState);const FCLoadingStateFonts=getFonts(FCLoadingState);const FC_ProductPurchaseButtonFonts=getFonts(FC_ProductPurchaseButton);const serializationHash=\"framer-Vx4Bj\";const variantClassNames={jsqQCm1y6:\"framer-v-c3zrv0\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};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 Variants=motion.create(React.Fragment);const getProps=({height,id,productID,width,...props})=>{return{...props,Nt_kadLvR:productID??props.Nt_kadLvR};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,Nt_kadLvR,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"jsqQCm1y6\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-c3zrv0\",className,classNames),\"data-framer-name\":\"Button\",layoutDependency:layoutDependency,layoutId:\"jsqQCm1y6\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-cduton-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"iNkvkA9f2-container\",nodeId:\"iNkvkA9f2\",rendersWithMotion:true,scopeId:\"DjzTC7Itj\",children:/*#__PURE__*/_jsx(FC_ProductPurchaseButton,{available:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:38,width:\"113px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-gab6kn-container\",\"data-framer-name\":\"Available\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"eSdJpzBNb-container\",name:\"Available\",nodeId:\"eSdJpzBNb\",rendersWithMotion:true,scopeId:\"DjzTC7Itj\",children:/*#__PURE__*/_jsx(FCAddToCartState,{elgRTGdr9:Nt_kadLvR,height:\"100%\",id:\"eSdJpzBNb\",layoutId:\"eSdJpzBNb\",name:\"Available\",variant:\"wqkXDYaGC\",width:\"100%\"})})})],BuyNowATC:false,focus:{color:\"rgb(0, 122, 255)\",padding:2,radius:0,width:2},height:\"100%\",id:\"iNkvkA9f2\",layoutId:\"iNkvkA9f2\",LoadingState:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,width:\"80px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-18h109c-container\",\"data-framer-name\":\"Loading\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"m8MnMo0tM-container\",name:\"Loading\",nodeId:\"m8MnMo0tM\",rendersWithMotion:true,scopeId:\"DjzTC7Itj\",children:/*#__PURE__*/_jsx(FCLoadingState,{elgRTGdr9:Nt_kadLvR,height:\"100%\",id:\"m8MnMo0tM\",layoutId:\"m8MnMo0tM\",name:\"Loading\",style:{height:\"100%\"},variant:\"m3PxgqSWs\",width:\"100%\"})})})],openCart:true,OutOfStock:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,width:\"158px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1t3c4gw-container\",\"data-framer-name\":\"Out of Stock\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"uUvki1T4h-container\",name:\"Out of Stock\",nodeId:\"uUvki1T4h\",rendersWithMotion:true,scopeId:\"DjzTC7Itj\",children:/*#__PURE__*/_jsx(FCOutOfStockState,{elgRTGdr9:Nt_kadLvR,height:\"100%\",id:\"uUvki1T4h\",layoutId:\"uUvki1T4h\",name:\"Out of Stock\",style:{height:\"100%\"},variant:\"NmLmXO_cJ\",width:\"100%\"})})})],SelectVariant:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,width:\"104px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1l84384-container\",\"data-framer-name\":\"Select Variant\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"v5tS_ZyK2-container\",name:\"Select Variant\",nodeId:\"v5tS_ZyK2\",rendersWithMotion:true,scopeId:\"DjzTC7Itj\",children:/*#__PURE__*/_jsx(FCAddSelectVariantState,{elgRTGdr9:Nt_kadLvR,height:\"100%\",id:\"v5tS_ZyK2\",layoutId:\"v5tS_ZyK2\",name:\"Select Variant\",style:{height:\"100%\"},variant:\"AmXVeNCXO\",width:\"100%\"})})})],shopifyProductID:Nt_kadLvR,shopifyProductVariantId:\"\",skipLoading:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Vx4Bj.framer-1nsao6o, .framer-Vx4Bj .framer-1nsao6o { display: block; }\",\".framer-Vx4Bj.framer-c3zrv0 { gap: 10px; height: 39px; overflow: hidden; position: relative; width: 114px; }\",\".framer-Vx4Bj .framer-cduton-container { bottom: 0px; flex: none; left: 0px; position: absolute; right: 0px; top: 0px; }\",\".framer-Vx4Bj .framer-gab6kn-container { height: auto; position: relative; width: auto; }\",\".framer-Vx4Bj .framer-1t3c4gw-container, .framer-Vx4Bj .framer-1l84384-container, .framer-Vx4Bj .framer-18h109c-container { height: 56px; position: relative; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 39\n * @framerIntrinsicWidth 114\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"Nt_kadLvR\":\"productID\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerDjzTC7Itj=withCSS(Component,css,\"framer-Vx4Bj\");export default FramerDjzTC7Itj;FramerDjzTC7Itj.displayName=\"FC Purchase Button\";FramerDjzTC7Itj.defaultProps={height:39,width:114};addPropertyControls(FramerDjzTC7Itj,{Nt_kadLvR:{defaultValue:\"\",title:\"Product ID\",type:ControlType.String}});addFonts(FramerDjzTC7Itj,[{explicitInter:true,fonts:[]},...FCAddToCartStateFonts,...FCOutOfStockStateFonts,...FCAddSelectVariantStateFonts,...FCLoadingStateFonts,...FC_ProductPurchaseButtonFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerDjzTC7Itj\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"39\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"114\",\"framerVariables\":\"{\\\"Nt_kadLvR\\\":\\\"productID\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DjzTC7Itj.map","// Generated by Framer (df7882f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,cx,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-oldhP\";const variantClassNames={mNwlrubOV:\"framer-v-1jx3q8t\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};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 Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"mNwlrubOV\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1jx3q8t\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"mNwlrubOV\",ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-iijjau\",layoutDependency:layoutDependency,layoutId:\"K7GHOEfm9\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.247 33.379\" overflow=\"visible\"><path d=\"M 6.584 21.206 C 6.614 19.2 6.984 17.213 7.677 15.329 C 7.837 14.873 8.037 14.267 8.247 13.611 C 7.865 12.402 7.519 11.267 7.364 10.656 C 7.058 9.573 6.888 8.456 6.86 7.331 C 6.86 6.866 6.722 3.063 6.701 2.477 C 6.727 2.367 6.743 2.254 6.746 2.141 L 6.746 1.455 C 6.743 1.348 6.724 1.242 6.689 1.14 L 6.689 0.874 C 6.689 0.063 5.318 0 4.898 0 C 4.478 0 3.108 0.063 3.108 0.874 L 3.108 1.142 C 3.072 1.25 3.053 1.363 3.05 1.477 L 3.05 2.159 C 3.055 2.268 3.07 2.376 3.096 2.482 C 3.085 3.058 3.004 6.883 3.004 7.345 C 2.986 8.316 2.832 9.28 2.548 10.208 C 2.507 10.359 2.468 10.509 2.431 10.658 C 2.177 11.66 1.341 14.373 0.888 15.661 C 0.324 17.186 0.024 18.795 0 20.42 L 0 31.294 C 0 32.107 0.296 32.433 0.438 32.543 C 1.17 33.16 3.294 33.379 4.9 33.379 C 5.428 33.379 6.012 33.354 6.584 33.3 Z\" fill=\"rgb(37,40,42)\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1rtwvxu\",layoutDependency:layoutDependency,layoutId:\"e6Uv0wuKf\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.389 33.38\" overflow=\"visible\"><path d=\"M 7.502 15.67 C 6.913 13.872 6.198 11.612 5.955 10.656 C 5.649 9.573 5.479 8.456 5.451 7.331 C 5.451 6.866 5.313 3.062 5.291 2.477 C 5.318 2.367 5.333 2.254 5.337 2.141 L 5.337 1.456 C 5.334 1.348 5.314 1.242 5.28 1.14 L 5.28 0.874 C 5.28 0.063 3.909 0 3.489 0 C 3.068 0 1.699 0.063 1.699 0.874 L 1.699 1.142 C 1.663 1.25 1.644 1.363 1.641 1.477 L 1.641 2.159 C 1.646 2.268 1.661 2.377 1.688 2.483 C 1.676 3.059 1.596 6.883 1.596 7.345 C 1.577 8.317 1.423 9.281 1.139 10.21 C 1.099 10.36 1.06 10.509 1.022 10.658 C 0.849 11.339 0.407 12.811 0 14.088 C 0.138 14.517 0.276 14.941 0.408 15.345 C 1.512 18.714 1.503 20.983 1.499 21.204 L 1.499 33.27 C 2.16 33.343 2.825 33.38 3.49 33.38 C 5.095 33.38 7.218 33.16 7.95 32.544 C 8.093 32.434 8.389 32.108 8.389 31.295 L 8.389 20.432 C 8.391 20.354 8.427 18.497 7.501 15.67\" fill=\"rgb(37,40,42)\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-jf50i6\",layoutDependency:layoutDependency,layoutId:\"PlloWoZGF\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10.717 39.198\" overflow=\"visible\"><path d=\"M 7.795 12.451 C 7.414 11.098 7.204 9.704 7.17 8.299 C 7.17 7.706 6.975 2.374 6.975 2.374 C 7.009 2.262 7.028 2.147 7.033 2.03 L 7.033 1.231 C 7.033 1.231 7.021 0.998 6.963 0.959 L 6.963 0.5 C 6.963 0.222 6.243 0 5.356 0 C 4.47 0 3.75 0.224 3.75 0.501 L 3.75 0.957 C 3.691 0.995 3.681 1.229 3.681 1.229 L 3.681 2.03 C 3.685 2.147 3.704 2.262 3.738 2.374 C 3.738 2.374 3.627 7.723 3.627 8.315 C 3.627 10.01 3.229 11.226 2.917 12.452 C 2.606 13.679 1.601 16.943 1.041 18.543 C 0.384 20.325 0.032 22.205 0 24.105 L 0 37.235 C 0 38.108 0.32 38.309 0.32 38.309 C 0.904 38.821 2.939 39.198 5.358 39.198 C 7.778 39.198 9.814 38.82 10.397 38.31 C 10.397 38.31 10.717 38.109 10.717 37.236 L 10.717 24.105 C 10.717 24.105 10.774 21.904 9.672 18.541 C 9.029 16.576 8.106 13.677 7.795 12.451\" fill=\"rgb(37,40,42)\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1p57dfd\",layoutDependency:layoutDependency,layoutId:\"KDvZ2cD00\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10.717 39.198\" overflow=\"visible\"><path d=\"M 7.795 12.451 C 7.414 11.098 7.204 9.704 7.17 8.299 C 7.17 7.706 6.975 2.374 6.975 2.374 C 7.009 2.262 7.028 2.147 7.033 2.03 L 7.033 1.231 C 7.033 1.231 7.021 0.998 6.963 0.959 L 6.963 0.5 C 6.963 0.222 6.243 0 5.356 0 C 4.47 0 3.75 0.224 3.75 0.501 L 3.75 0.957 C 3.691 0.995 3.681 1.229 3.681 1.229 L 3.681 2.03 C 3.685 2.147 3.704 2.262 3.738 2.374 C 3.738 2.374 3.627 7.723 3.627 8.315 C 3.627 10.01 3.229 11.226 2.917 12.452 C 2.606 13.679 1.601 16.943 1.041 18.543 C 0.384 20.325 0.032 22.205 0 24.105 L 0 37.235 C 0 38.108 0.32 38.309 0.32 38.309 C 0.904 38.821 2.939 39.198 5.358 39.198 C 7.778 39.198 9.814 38.82 10.397 38.31 C 10.397 38.31 10.717 38.109 10.717 37.236 L 10.717 24.105 C 10.717 24.105 10.774 21.904 9.672 18.541 C 9.029 16.576 8.106 13.677 7.795 12.451\" fill=\"rgb(37,40,42)\"></path></svg>',withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-oldhP.framer-jj8tmg, .framer-oldhP .framer-jj8tmg { display: block; }\",\".framer-oldhP.framer-1jx3q8t { height: 45px; overflow: hidden; position: relative; width: 45px; }\",\".framer-oldhP .framer-iijjau { height: 34px; left: 10px; position: absolute; top: 6px; width: 8px; }\",\".framer-oldhP .framer-1rtwvxu { height: 34px; left: 28px; position: absolute; top: 6px; width: 9px; }\",\".framer-oldhP .framer-jf50i6, .framer-oldhP .framer-1p57dfd { height: 39px; left: 18px; position: absolute; top: 3px; width: 11px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 45\n * @framerIntrinsicWidth 45\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerhd2gbXUgi=withCSS(Component,css,\"framer-oldhP\");export default Framerhd2gbXUgi;Framerhd2gbXUgi.displayName=\"Bottle Button\";Framerhd2gbXUgi.defaultProps={height:45,width:45};addFonts(Framerhd2gbXUgi,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerhd2gbXUgi\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"45\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"45\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./hd2gbXUgi.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,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{parseUrlFilters,updateUrlWithFilters,convertFilterName}from\"https://framerusercontent.com/modules/A55TPw8oJtDToWtsjcDZ/efvR3aKErSMemVA7DBdP/filterMappings.js\";// Constants for localStorage and debugging\nconst FILTER_STATE_KEY=\"shopx_filter_states\";const DEBUG_MODE=true// Enable detailed logging\n;// Global state management to prevent duplicate instances\nconst globalFilterState={instances:new Set,eventListeners:new Map,cleanup:()=>{globalFilterState.instances.clear();globalFilterState.eventListeners.forEach((listener,event)=>{window.removeEventListener(event,listener);});globalFilterState.eventListeners.clear();}};// Ensure cleanup on page unload\nif(typeof window!==\"undefined\"){window.addEventListener(\"beforeunload\",globalFilterState.cleanup);}// Helper function for consistent logging\nconst logDebug=(component,action,data)=>{if(DEBUG_MODE){// console.log(`🔍 [${component}] ${action}:`, data)\n}};const normalizeProperty=(property,discountType)=>{const propertyMap={collection:\"collection\",product_type:\"product_type\",product_tag:\"product_tag\",price:\"price\",on_sale:\"on_sale\",in_stock:\"in_stock\",bundle:\"bundle\",subscription:\"subscription\",variant:\"variant\",discount:discountType===\"Percent\"?\"discount_percent\":\"discount_amount\"};return propertyMap[property]||property;};/**\n * @framerDisableUnlink\n */export default function FC_CatalogFilterButton(props){const{// Functional props\nfilterType=\"shopify\",property=\"price\",displayText=\"\",value=\"\",priceType=\"Under\",priceThreshold=100,priceOver=50,priceLow=50,priceHigh=100,discountType=\"Percent\",discountValueType=\"Over\",discountThreshold=100,discountLow=50,discountHigh=100,variantTitle=\"Size\",variantValue=\"Large\",showVariantTitle=true,showVariantValue=true,variantStockFilter=\"all\",variantDisplayText=\"\",showText=true,// CMS props\ncmsTitle=\"Category\",cmsValue=\"fashion\",// Font control\nfont={fontSize:16,fontWeight:400,fontFamily:\"Inter\",fontStyle:\"normal\",lineHeight:1.2,letterSpacing:0,textAlign:\"left\",textDecoration:\"none\"},// Style controls\nstyle:{type=\"checkbox\",width=20,height=20,radius=4,radiusPerSide=false,radiusTopLeft=4,radiusTopRight=4,radiusBottomRight=4,radiusBottomLeft=4,swatchType=\"color\",swatchImage=\"\",swatchColor=\"#000000\",swatchBorder=4,icon:{type:iconType=\"default\",color:iconColor=\"#000000\",weight:iconWeight=2,edge:iconEdge=\"round\",size:iconSize=12,customIcon=\"\"}={},gap=8,padding=8,paddingPerSide=false,paddingTop=8,paddingRight=8,paddingBottom=8,paddingLeft=8,direction=\"horizontal\"}={},// State controls\ndefault:defaultState={textColor:\"#000000\",border:{color:\"#000000\",width:{top:2,right:2,bottom:2,left:2},style:\"solid\"},background:\"transparent\"},hover:hoverState={textColor:\"#333333\",border:{color:\"#333333\",width:{top:2,right:2,bottom:2,left:2},style:\"solid\"},background:\"rgba(0,0,0,0.05)\"},selected:selectedState={textColor:\"#000000\",border:{color:\"#000000\",width:{top:2,right:2,bottom:2,left:2},style:\"solid\"},background:\"#000000\"}}=props;// Component instance tracking with global registry\nconst componentId=React.useRef(`filter-${Date.now()}-${Math.random().toString(36).substr(2,9)}`).current;const componentRef=React.useRef(null);const mountedRef=React.useRef(true);const[isHovered,setIsHovered]=React.useState(false);const[isChecked,setIsChecked]=React.useState(false);const isCheckedRef=React.useRef(false);// Generate a normalized property name for URL parameters\nconst normalizedProperty=React.useMemo(()=>{// Convert legacy Shopify property names to the format used in URL parameters\nif(filterType===\"cms\"){return\"cms\"// CMS filters are handled differently\n;}const mapping={\"product-type\":\"product_type\",\"product-tag\":\"product_tag\",\"on-sale\":\"on_sale\",\"in-stock\":\"in_stock\",bundles:\"bundle\",subscriptions:\"subscription\",variant:\"variant\",price:\"price\",discount:discountType===\"Percent\"?\"discount_percent\":\"discount_amount\"};return mapping[property]||property;},[property,filterType,discountType]);// Helper function to consistently get filter value - rewritten to use utility\nconst getFilterValueForComponent=React.useCallback(()=>{try{if(filterType===\"cms\"){return{title:cmsTitle,value:cmsValue,type:\"cms\"};}// Convert property names to normalized format\nconst normalizedProp=normalizedProperty;// For variants, construct a variant filter object\nif(property===\"variant\"){return{name:variantTitle,value:variantValue};}// Handle specific price filters\nif(property===\"price\"){const values=[];if(priceType===\"Under\"){values.push({priceType,min:null,max:priceThreshold});}if(priceType===\"Over\"){values.push({priceType,min:priceOver,max:null});}if(priceType===\"Range\"){values.push({priceType,min:priceLow,max:priceHigh});}//console.log(\"values for ranges, priceType\", values, priceType)\nreturn{values};}// Handle discount filters\nif(property===\"discount\"){const discountProperty=discountType===\"Percent\"?\"discount_percent\":\"discount_amount\";// Create values array with the current range\nconst values=[{min:discountValueType===\"Over\"?discountThreshold:discountLow,max:discountValueType===\"Over\"?null:discountHigh}];return{type:discountProperty,values:values};}// For boolean filters\nif([\"on-sale\",\"in-stock\",\"bundles\",\"subscriptions\"].includes(property)){return true;}// For collection, product-type, product-tag, return the value\nreturn value;}catch(error){console.error(\"Error getting filter value:\",error);return\"\";}},[filterType,property,value,priceType,priceThreshold,priceLow,priceHigh,discountType,discountValueType,discountThreshold,discountLow,discountHigh,variantTitle,variantValue,cmsTitle,cmsValue,normalizedProperty]);// Helper function to check if this filter is active in URL\nconst checkUrlState=React.useCallback(()=>{try{if(typeof window===\"undefined\")return false;const url=new URL(window.location.href);const filterValue=getFilterValueForComponent();logDebug(\"FilterCheckbox\",\"Checking URL state\",{filterType,property,normalizedProperty,filterValue,url:url.toString()});if(filterType===\"cms\"){// For CMS filtering, check for cms-filter parameter\ntry{const cmsFilters=JSON.parse(url.searchParams.get(\"cms-filter\")||\"[]\");return cmsFilters.some(f=>f.title===cmsTitle&&f.value===cmsValue);}catch(e){console.error(\"Error parsing CMS filters from URL:\",e);return false;}}// Use the parsed URL filters from the utility function\nconst parsedFilters=parseUrlFilters(url.searchParams);// console.log(\"parsedFilters\", parsedFilters)\n// Check if this filter is active based on property type\nswitch(property){case\"collection\":case\"product-type\":case\"product-tag\":{const normalized=convertFilterName(property);return parsedFilters[normalized]?.active&&parsedFilters[normalized].values.includes(filterValue);}case\"variant\":{if(!parsedFilters.variant?.active)return false;// Check if our specific variant option/value combo is active\nreturn parsedFilters.variant.values.some(v=>v.name===variantTitle&&v.value===variantValue);}case\"price\":{if(!parsedFilters.price?.active)return false;// console.log(\"parsedFilters.price\", parsedFilters.price)\n// console.log(\"filterValue\", filterValue)\nconst range=filterValue.values[0];if(range.priceType===\"Under\"){// For \"Under\" type, check price_max parameter\nconst maxValues=url.searchParams.get(\"price_max\")?.split(\",\").map(Number)||[];return maxValues.includes(range.max);}else if(range.priceType===\"Over\"){// For \"Over\" type, check price_min parameter\nconst minValues=url.searchParams.get(\"price_min\")?.split(\",\").map(Number)||[];return minValues.includes(range.min);}else{// For regular ranges, check price parameter\nconst urlRanges=url.searchParams.get(\"price\")?.split(\",\").filter(Boolean)||[];const currentRange=`${range.min}-${range.max}`;return urlRanges.includes(currentRange);}}case\"discount\":{// Determine discount type (percent vs amount)\nconst discountProperty=discountType===\"Percent\"?\"discount_percent\":\"discount_amount\";if(!parsedFilters[discountProperty]?.active)return false;// Get the current range we're checking for\nconst currentRange={min:discountValueType===\"Over\"?discountThreshold:discountLow,max:discountValueType===\"Over\"?null:discountHigh};// Check if this range exists in the values array\nif(parsedFilters[discountProperty].values){return parsedFilters[discountProperty].values.some(range=>range.min===currentRange.min&&range.max===currentRange.max);}// Check min values if it's an \"Over\" type\nif(discountValueType===\"Over\"&&parsedFilters[discountProperty].min){return parsedFilters[discountProperty].min.includes(discountThreshold);}return false;}case\"on-sale\":case\"in-stock\":case\"bundles\":case\"subscriptions\":{const normalized=convertFilterName(property);return parsedFilters[normalized]?.active;}default:return false;}}catch(error){console.error(\"Error checking URL state:\",error);return false;}},[filterType,property,normalizedProperty,getFilterValueForComponent,variantTitle,variantValue,cmsTitle,cmsValue,priceType,priceThreshold,priceLow,priceHigh,discountType,discountValueType,discountThreshold,discountLow,discountHigh]);// Dispatch filter change event\nconst dispatchFilterChange=React.useCallback(active=>{try{logDebug(\"FilterCheckbox\",\"Dispatching filter change\",{componentId,property,normalizedProperty,active});const filterValue=getFilterValueForComponent();const url=new URL(window.location.href);// Get existing parsed filters\nconst filters=parseUrlFilters(url.searchParams);// Update URL parameters based on filter type and state\nif(filterType===\"cms\"){// For CMS filtering, use a JSON array stored in cms-filter param\ntry{const cmsFilters=JSON.parse(url.searchParams.get(\"cms-filter\")||\"[]\");if(active){// Only add if not already present\nif(!cmsFilters.some(f=>f.title===cmsTitle&&f.value===cmsValue)){cmsFilters.push({title:cmsTitle,value:cmsValue,type:\"cms\"});url.searchParams.set(\"cms-filter\",JSON.stringify(cmsFilters));logDebug(\"FilterCheckbox\",\"Added CMS filter to URL\",{title:cmsTitle,value:cmsValue,filterCount:cmsFilters.length});}}else{// Remove this CMS filter from the array\nconst filteredCmsFilters=cmsFilters.filter(f=>!(f.title===cmsTitle&&f.value===cmsValue));if(filteredCmsFilters.length>0){url.searchParams.set(\"cms-filter\",JSON.stringify(filteredCmsFilters));}else{url.searchParams.delete(\"cms-filter\");}logDebug(\"FilterCheckbox\",\"Removed CMS filter from URL\",{title:cmsTitle,value:cmsValue,remainingFilters:filteredCmsFilters.length});}}catch(e){console.error(\"Error updating CMS filters in URL:\",e);}}else{// Update filters based on property type\nswitch(property){case\"collection\":case\"product-type\":case\"product-tag\":{const normalized=convertFilterName(property);if(active){// Add value to filter\nif(!filters[normalized]){filters[normalized]={active:true,values:[]};}if(!filters[normalized].values.includes(filterValue)){filters[normalized].values.push(filterValue);}filters[normalized].active=true;}else{// Remove value from filter\nif(filters[normalized]&&filters[normalized].values){filters[normalized].values=filters[normalized].values.filter(v=>v!==filterValue);filters[normalized].active=filters[normalized].values.length>0;}}break;}case\"variant\":{if(active){// Initialize variant filter if needed\nif(!filters.variant){// filters.variant = { active: true, values: [] };\nfilters.variant={active:true,values:[]};}// Add variant if not already present\nconst existing=filters.variant.values.some(v=>v.name===variantTitle&&v.value===variantValue);if(!existing){filters.variant.values.push({name:variantTitle,value:variantValue});}// Ensure active state is correctly set\nfilters.variant.active=filters.variant.values.length>0;// Check if there are existing values in the URL for this variant\nconst urlKey=`variant_${variantTitle}`;if(url.searchParams.has(urlKey)){const existingValuesStr=url.searchParams.get(urlKey);if(existingValuesStr){// First decode the value to properly handle URL encoding\nconst decodedValues=decodeURIComponent(existingValuesStr);const existingValues=decodedValues.split(\",\").filter(Boolean);// Check if the value already exists (case-insensitive)\nconst valueExists=existingValues.some(v=>v.toLowerCase()===variantValue.toLowerCase());if(!valueExists){// Add this value to the existing comma-separated list\nexistingValues.push(variantValue);// Update the URL parameter with the combined list - don't encode, as URLSearchParams does that\nurl.searchParams.set(urlKey,existingValues.join(\",\"));// console.log(\n//     `🔎 [FilterCheckbox] Updated variant parameter ${urlKey}:`,\n//     {\n//         rawValue:\n//             existingValues.join(\n//                 \",\"\n//             ),\n//         existingValues,\n//     }\n// )\n}}}else{// Set the single value\nurl.searchParams.set(urlKey,variantValue);}}else{// Remove variant if present\nif(filters.variant&&filters.variant.values){filters.variant.values=filters.variant.values.filter(v=>!(v.name===variantTitle&&v.value===variantValue));// console.log(\n//     \"filters.variant.values\",\n//     filters.variant.values\n// )\nif(filters.variant.values.length>0){filters.variant.active=true;}// Update URL parameter\nconst urlKey=`variant_${variantTitle}`;if(url.searchParams.has(urlKey)){const existingValuesStr=url.searchParams.get(urlKey);if(existingValuesStr){const existingValues=existingValuesStr.split(\",\").filter(Boolean);const updatedValues=existingValues.filter(v=>v!==variantValue);// console.log(\n//     \"updatedValues\",\n//     updatedValues\n// )\nif(updatedValues.length>0){url.searchParams.set(urlKey,updatedValues.join(\",\"));// console.log(\n//     `🔎 [FilterCheckbox] Updated variant parameter ${urlKey}:`,\n//     updatedValues.join(\",\")\n// )\n}else{url.searchParams.delete(urlKey);// console.log(\n//     `🔎 [FilterCheckbox] Removed empty variant parameter ${urlKey}`\n// )\n}}}}}break;}case\"price\":{const range=filterValue.values[0];// console.log(\"range\", range)\n// Check if the filter is for \"Under\" or regular range\nif(range.priceType===\"Under\"){// Handle \"Under\" price ranges\nconst maxValues=url.searchParams.get(\"price_max\")?.split(\",\").map(Number)||[];if(active){if(!maxValues.includes(range.max)){maxValues.push(range.max);}}else{const index=maxValues.indexOf(range.max);if(index>-1){maxValues.splice(index,1);}}if(maxValues.length>0){url.searchParams.set(\"price_max\",maxValues.join(\",\"));}else{url.searchParams.delete(\"price_max\");}}else if(range.priceType===\"Over\"){// Handle \"Over\" price ranges\nconst minValues=url.searchParams.get(\"price_min\")?.split(\",\").map(Number)||[];if(active){if(!minValues.includes(range.min)){minValues.push(range.min);}}else{const index=minValues.indexOf(range.min);if(index>-1){minValues.splice(index,1);}}if(minValues.length>0){url.searchParams.set(\"price_min\",minValues.join(\",\"));}else{url.searchParams.delete(\"price_min\");}}else{// Handle regular price ranges\nconst ranges=url.searchParams.get(\"price\")?.split(\",\").filter(Boolean)||[];const currentRange=`${range.min}-${range.max}`;if(active){if(!ranges.includes(currentRange)){ranges.push(currentRange);}}else{const index=ranges.indexOf(currentRange);if(index>-1){ranges.splice(index,1);}}if(ranges.length>0){url.searchParams.set(\"price\",ranges.join(\",\"));}else{url.searchParams.delete(\"price\");}}// Set price filter values with multiple ranges\nfilters.price={active:false,values:[]};// Add regular ranges\nconst regularRanges=url.searchParams.get(\"price\")?.split(\",\").filter(Boolean)||[];if(regularRanges.length>0){filters.price.values.push(...regularRanges.map(range=>{const[min,max]=range.split(\"-\").map(Number);return{min:isNaN(min)?null:min,max:isNaN(max)?null:max,priceType:\"Range\"};}));}// Add \"Under\" ranges\nconst underMaxValues=url.searchParams.get(\"price_max\")?.split(\",\").map(Number)||[];if(underMaxValues.length>0){filters.price.values.push(...underMaxValues.map(max=>({min:null,max,priceType:\"Under\"})));}const minValues=url.searchParams.get(\"price_min\")?.split(\",\").map(Number)||[];if(minValues.length>0){filters.price.values.push(...minValues.map(min=>({min,max:null,priceType:\"Over\"})));}// Update active state based on whether we have any ranges\nfilters.price.active=filters.price.values.length>0;break;}case\"discount\":{// Determine discount type (percent vs amount)\nconst discountProperty=discountType===\"Percent\"?\"discount_percent\":\"discount_amount\";if(active){// Add the new range to the existing values\nconst newRange={min:discountValueType===\"Over\"?discountThreshold:discountLow,max:discountValueType===\"Over\"?null:discountHigh};if(!filters[discountProperty]){filters[discountProperty]={active:true,values:[]};}filters[discountProperty].values.push(newRange);filters[discountProperty].active=true// Ensure active state is set\n;}else{// Logic to remove the range if it exists\nif(filters[discountProperty]){const rangeToRemove={min:discountValueType===\"Over\"?discountThreshold:discountLow,max:discountValueType===\"Over\"?null:discountHigh};filters[discountProperty].values=filters[discountProperty].values.filter(range=>!(range.min===rangeToRemove.min&&range.max===rangeToRemove.max));filters[discountProperty].active=filters[discountProperty].values.length>0;}}break;}case\"on-sale\":case\"in-stock\":case\"bundles\":case\"subscriptions\":{const normalized=convertFilterName(property);if(active){filters[normalized]={active:true,value:true};}else{filters[normalized]={active:false,value:true};}break;}}// console.log(\n//     \"Updating url with price range filters\",\n//     filters,\n//     url\n// )\n// Update URL with all current filters\nupdateUrlWithFilters(filters,url);// Add logging to track filter state and URL updates\n// console.log(\"🔄 [FilterCheckbox] Current filters:\", filters)\n// console.log(\n//     \"🔄 [FilterCheckbox] Current URL:\",\n//     url.toString()\n// )\n}// Update URL without reloading the page\nwindow.history.pushState({},\"\",url.toString());// Determine the event type to dispatch based on filter property\nconst eventType=filterType===\"cms\"?\"cms\":normalizedProperty;// Dispatch the filter-navigation event so other components are notified\nconst navigationEvent=new CustomEvent(\"filter-navigation\",{detail:{filters,sourceComponentId:componentId}});document.dispatchEvent(navigationEvent);// Create event type that matches what GlobalCMS expects\n// For variants, we need to use variant_OPTIONNAME format\nlet dispatchEventType=eventType;let dispatchValue=filterValue;if(property===\"variant\"){dispatchEventType=`variant_${variantTitle}`;if(!active){dispatchValue=variantValue;}else{// For variants, use the current URL parameter value which has all selected options\nconst urlKey=`variant_${variantTitle}`;if(url.searchParams.has(urlKey)){const urlValue=url.searchParams.get(urlKey);if(urlValue){// Decode the URL parameter to handle URL encoding\nconst decodedValue=decodeURIComponent(urlValue);// console.log(\n//     `🔎 [FilterCheckbox] Using URL value for dispatch:`,\n//     {\n//         urlKey,\n//         urlValue,\n//         decodedValue,\n//     }\n// )\ndispatchValue=decodedValue// Use the decoded value\n;}else{dispatchValue=variantValue;}}else{dispatchValue=variantValue;}}}// Dispatch the legacy filter change event for compatibility with GlobalCMS\nconst legacyEvent=new CustomEvent(\"product-filter-change\",{detail:{type:dispatchEventType,group:property===\"variant\"?variantTitle:undefined,active,value:dispatchValue,componentId:componentId,filterType:filterType,variantStockFilter:property===\"variant\"?variantStockFilter:undefined}});document.dispatchEvent(legacyEvent);// console.log(\n//     \"🔎 [FilterCheckbox] Filter change event dispatched\",\n//     {\n//         eventType: dispatchEventType,\n//         property,\n//         active,\n//         value: dispatchValue,\n//         filters,\n//     }\n// )\nlogDebug(\"FilterCheckbox\",\"Filter change events dispatched\",{componentId,property,active,url:url.toString()});}catch(error){console.error(\"Error dispatching filter change:\",error);}},[componentId,property,normalizedProperty,variantTitle,variantValue,getFilterValueForComponent,filterType,cmsTitle,cmsValue,priceType,priceThreshold,priceLow,priceHigh,discountType,discountValueType,discountThreshold,discountLow,discountHigh,variantStockFilter]);// Listen for URL changes\nReact.useEffect(()=>{if(!mountedRef.current)return;const handleUrlChange=event=>{// console.log(\"handleUrlChange\", event)\nconst isBackButton=event?.type===\"popstate\";const isFilterChanged=event?.type===\"filter-navigation\";const eventSource=event?.detail?.sourceComponentId||\"none\";const currentUrl=window.location.href;// console.log(\"🔙 [Navigation] Event detected:\", {\n//     type: event?.type,\n//     isBackButton,\n//     isFilterChanged,\n//     url: currentUrl,\n//     source: eventSource,\n// })\n// Get the current state from URL and compare with current state\nconst newState=checkUrlState();const currentState=isCheckedRef.current;// console.log(\"🔙 [Navigation] State comparison:\", {\n//     currentState,\n//     newState,\n//     stateChanged: newState !== currentState,\n//     componentId,\n// })\n// Always update on back button\nif(newState!==currentState){// console.log(\"🔙 [Navigation] Updating state:\", {\n//     from: currentState,\n//     to: newState,\n//     reason: isBackButton ? \"back_button\" : \"state_change\",\n//     componentId,\n// })\nsetIsChecked(newState);isCheckedRef.current=newState;}};// Separate handler specifically for popstate\nconst handlePopState=event=>{// console.log(\"handlePopState\", event)\n// console.log(\"🔙 [Back Button] PopState event detected\")\nconst isBackButton=event?.type===\"popstate\";if(isBackButton){// console.log(\"Reloading on back button\")\nconst newState=checkUrlState();setIsChecked(newState);isCheckedRef.current=newState;// console.log(\"📦 setIsChecked triggered with:\", newState)\nwindow.location.reload();}};//console.log('🔙 [Navigation] Setting up event handlers for component:', componentId);\n// Initial URL check\nhandleUrlChange({});// Add event listeners\n//window.addEventListener('popstate', handlePopState);\nwindow.addEventListener(\"popstate\",handlePopState);document.addEventListener(\"filter-navigation\",handleUrlChange);return()=>{if(!mountedRef.current)return;// console.log(\n//     \"🔙 [Navigation] Cleaning up event handlers for component:\",\n//     componentId\n// )\n//window.removeEventListener('popstate', handleUrlChange);\n//window.removeEventListener('popstate', handlePopState);\ndocument.removeEventListener(\"filter-navigation\",handleUrlChange);};},[componentId,checkUrlState]);// Handle filter change\nconst handleChange=React.useCallback(()=>{try{const newState=!isCheckedRef.current;logDebug(\"FilterCheckbox\",\"Filter clicked\",{componentId,property,currentState:isCheckedRef.current,newState});// Update internal state first to prevent flicker\nsetIsChecked(newState);isCheckedRef.current=newState;// Then dispatch event to update URL and notify other components\ndispatchFilterChange(newState);}catch(error){console.error(\"Error handling filter change:\",error);}},[dispatchFilterChange,componentId,property]);// Register instance\nReact.useEffect(()=>{if(!componentRef.current)return;try{// Register this instance\nglobalFilterState.instances.add(componentId);componentRef.current.setAttribute(\"data-filter-id\",componentId);logDebug(\"FilterCheckbox\",\"Component registered\",{componentId,property,filterType});// Cleanup on unmount\nreturn()=>{mountedRef.current=false;globalFilterState.instances.delete(componentId);logDebug(\"FilterCheckbox\",\"Component unregistered\",{componentId});if(globalFilterState.instances.size===0){globalFilterState.cleanup();}};}catch(error){console.error(\"Error registering filter component:\",error);}},[componentId,property,filterType]);// Initialize with shopXtools data and event listeners\nReact.useEffect(()=>{if(!mountedRef.current)return;try{// Initialize from URL parameters if they exist\nlogDebug(\"FilterCheckbox\",\"Initializing component from URL\",{componentId,url:typeof window!==\"undefined\"?window.location.href:null});// Handle filter reset events\nconst handleFilterReset=e=>{logDebug(\"FilterCheckbox\",\"Filter reset event received\",{componentId});setIsChecked(false);isCheckedRef.current=false;};// Handle filter change events\nconst handleFilterChange=e=>{// Skip events from this component\nif(e.detail.componentId===componentId)return;// Handle CMS vs regular filters\nif(filterType===\"cms\"&&e.detail.type===\"cms\"){// Check if this specific CMS filter was toggled\nif(e.detail.value?.title===cmsTitle&&e.detail.value?.value===cmsValue){logDebug(\"FilterCheckbox\",\"CMS filter change received\",{componentId,title:cmsTitle,value:cmsValue,active:e.detail.active});setIsChecked(e.detail.active);isCheckedRef.current=e.detail.active;}}else if(filterType===\"shopify\"){// Check if this specific property was toggled\nconst filterProperty=convertFilterName(property);const eventProperty=convertFilterName(e.detail.type);if(filterProperty===eventProperty){// For regular properties like on_sale, in_stock, etc.\nif(![\"variant\",\"price\",\"discount_amount\",\"discount_percent\"].includes(filterProperty)){// For value-based filters, check if values match\nif([\"collection\",\"product_type\",\"product_tag\"].includes(filterProperty)){if(e.detail.value===value){logDebug(\"FilterCheckbox\",\"Filter change for value received\",{componentId,property:filterProperty,value,active:e.detail.active});setIsChecked(e.detail.active);isCheckedRef.current=e.detail.active;}}else{logDebug(\"FilterCheckbox\",\"Boolean filter change received\",{componentId,property:filterProperty,active:e.detail.active});setIsChecked(e.detail.active);isCheckedRef.current=e.detail.active;}}else if(filterProperty===\"variant\"&&e.detail.group===variantTitle&&e.detail.value?.optionValue===variantValue){logDebug(\"FilterCheckbox\",\"Variant filter change received\",{componentId,variantTitle,variantValue,active:e.detail.active});setIsChecked(e.detail.active);isCheckedRef.current=e.detail.active;}else if([\"price\",\"discount_amount\",\"discount_percent\"].includes(filterProperty)){// Compare values to see if this specific filter was toggled\nconst myFilterValue=getFilterValueForComponent();// Skip if we can't properly compare\nif(!myFilterValue||!e.detail.value)return;const valuesMatch=JSON.stringify(myFilterValue)===JSON.stringify(e.detail.value);if(valuesMatch){logDebug(\"FilterCheckbox\",\"Price/discount filter change received\",{componentId,property:filterProperty,value:myFilterValue,active:e.detail.active});setIsChecked(e.detail.active);isCheckedRef.current=e.detail.active;}}}}};// Register event listeners\nconst events=[{name:\"filter-reset\",handler:handleFilterReset},{name:\"product-filter-change\",handler:handleFilterChange}];// Add all event listeners\nevents.forEach(({name,handler})=>{document.addEventListener(name,handler);logDebug(\"FilterCheckbox\",`Added event listener: ${name}`,{componentId});});// Cleanup\nreturn()=>{if(!mountedRef.current)return;events.forEach(({name,handler})=>{document.removeEventListener(name,handler);});logDebug(\"FilterCheckbox\",\"Removed event listeners\",{componentId});};}catch(error){console.error(\"Error initializing filter:\",error);}},[componentId,property,getFilterValueForComponent,variantTitle,variantValue,cmsTitle,cmsValue,filterType,normalizedProperty,value]);// Keyboard handler for accessibility\nconst handleKeyDown=React.useCallback(event=>{if(event.key===\"Enter\"||event.key===\" \"){event.preventDefault();handleChange();}},[handleChange]);// Text display logic - generate human-readable text\nconst getDisplayText=React.useCallback(()=>{try{if(filterType===\"cms\"){return displayText||`${cmsTitle}: ${cmsValue}`;}switch(property){case\"variant\":return variantDisplayText||variantValue;case\"price\":if(priceType===\"Under\"){return`Under $${priceThreshold}`;}return`$${priceLow} - $${priceHigh}`;case\"discount\":const unit=discountType===\"Percent\"?\"%\":\"$\";if(discountValueType===\"Over\"){return`Over ${discountThreshold}${unit} Off`;}return`${discountLow}${unit} - ${discountHigh}${unit} Off`;case\"on-sale\":return displayText||\"On Sale\";case\"in-stock\":return displayText||\"In Stock\";case\"subscriptions\":return displayText||\"Subscriptions\";default:return displayText||value||\"\";}}catch(error){console.error(\"Error generating display text:\",error);return displayText||value||\"\";}},[filterType,cmsTitle,cmsValue,property,displayText,value,variantValue,variantDisplayText,priceType,priceThreshold,priceLow,priceHigh,discountType,discountValueType,discountThreshold,discountLow,discountHigh]);// Style objects with memoization\nconst getRadiusStyle=React.useCallback(()=>{try{if(radiusPerSide){return`${radiusTopLeft}px ${radiusTopRight}px ${radiusBottomRight}px ${radiusBottomLeft}px`;}return`${radius}px`;}catch(error){console.error(\"Error generating radius style:\",error);return`${radius}px`;}},[radius,radiusPerSide,radiusTopLeft,radiusTopRight,radiusBottomRight,radiusBottomLeft]);// Helper function to generate border style\nconst getBorderStyle=borderConfig=>{if(borderConfig.isMixed){return{borderTop:`${borderConfig.top}px ${borderConfig.style} ${borderConfig.color}`,borderRight:`${borderConfig.right}px ${borderConfig.style} ${borderConfig.color}`,borderBottom:`${borderConfig.bottom}px ${borderConfig.style} ${borderConfig.color}`,borderLeft:`${borderConfig.left}px ${borderConfig.style} ${borderConfig.color}`};}return{border:`${borderConfig.width}px ${borderConfig.style} ${borderConfig.color}`};};// Helper function to generate hover border style\nconst getHoverBorderStyle=borderConfig=>{if(borderConfig.isMixed){return{borderTop:`${borderConfig.top}px ${borderConfig.style} ${borderConfig.color}`,borderRight:`${borderConfig.right}px ${borderConfig.style} ${borderConfig.color}`,borderBottom:`${borderConfig.bottom}px ${borderConfig.style} ${borderConfig.color}`,borderLeft:`${borderConfig.left}px ${borderConfig.style} ${borderConfig.color}`};}return{border:`${borderConfig.width}px ${borderConfig.style} ${borderConfig.color}`};};// Helper function to generate selected border style\nconst getSelectedBorderStyle=borderConfig=>{if(borderConfig.isMixed){return{borderTop:`${borderConfig.top}px ${borderConfig.style} ${borderConfig.color}`,borderRight:`${borderConfig.right}px ${borderConfig.style} ${borderConfig.color}`,borderBottom:`${borderConfig.bottom}px ${borderConfig.style} ${borderConfig.color}`,borderLeft:`${borderConfig.left}px ${borderConfig.style} ${borderConfig.color}`};}return{border:`${borderConfig.width}px ${borderConfig.style} ${borderConfig.color}`};};const containerStyle=React.useMemo(()=>{try{const state=isChecked?selectedState:isHovered?hoverState:defaultState;return{display:\"flex\",flexDirection:props.style?.stacked===\"vertical\"?\"column\":\"row\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\",position:\"relative\",boxSizing:\"border-box\",padding:paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`,...props.style?.type===\"button\"&&{...isChecked?getSelectedBorderStyle(selectedState.border):isHovered?getHoverBorderStyle(hoverState.border):getBorderStyle(defaultState.border),background:state.background,borderRadius:getRadiusStyle()},transition:\"all 0.2s ease-in-out\",cursor:\"pointer\",overflow:\"hidden\",flexShrink:0,flexGrow:0};}catch(error){console.error(\"Error generating container style:\",error);return{display:\"flex\",width:\"100%\",height:\"100%\",position:\"relative\",boxSizing:\"border-box\"};}},[props.style?.type,props.style?.stacked,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,getRadiusStyle,isHovered,isChecked,defaultState,hoverState,selectedState]);const textStyle=React.useMemo(()=>({margin:0,padding:0,...font,color:isChecked?selectedState.textColor:isHovered?hoverState.textColor:defaultState.textColor,display:\"block\",width:\"100%\",userSelect:\"none\",marginLeft:props.style?.type!==\"button\"&&props.style?.stacked!==\"vertical\"?gap:0,marginTop:props.style?.type!==\"button\"&&props.style?.stacked===\"vertical\"?gap:0,textAlign:font.textAlign||\"left\",transition:\"color 0.2s ease-in-out\",justifyContent:font.textAlign===\"center\"?\"center\":font.textAlign===\"right\"?\"flex-end\":\"flex-start\",alignItems:\"center\"}),[font,defaultState.textColor,hoverState.textColor,selectedState.textColor,isChecked,isHovered,props.style?.type,props.style?.stacked,gap]);const checkboxStyle=React.useMemo(()=>{try{const state=isChecked?selectedState:isHovered?hoverState:defaultState;return{width:width,height:height,transition:\"all 0.2s ease-in-out\",cursor:\"pointer\",display:props.style?.type===\"checkbox\"?\"flex\":\"none\",alignItems:\"center\",justifyContent:\"center\",borderRadius:getRadiusStyle(),flexShrink:0,...isChecked?getSelectedBorderStyle(selectedState.border):isHovered?getHoverBorderStyle(hoverState.border):getBorderStyle(defaultState.border),background:state.background};}catch(error){console.error(\"Error generating checkbox style:\",error);return{width:width,height:height,display:props.style?.type===\"checkbox\"?\"flex\":\"none\"};}},[width,height,getRadiusStyle,isHovered,isChecked,defaultState,hoverState,selectedState,props.style?.type]);const renderIcon=React.useCallback(()=>{try{const showPreview=props.style?.icon?.preview&&RenderTarget.current()===\"CANVAS\";if(!isChecked&&!showPreview||props.style?.type!==\"checkbox\")return null;if(iconType===\"custom\"&&customIcon){return /*#__PURE__*/_jsx(\"img\",{src:customIcon,width:iconSize,height:iconSize,style:{objectFit:\"contain\"},alt:\"Custom checkbox icon\"});}// Default checkmark with precise stroke width\nconst lineCap=iconEdge===\"round\"?\"round\":\"square\";const lineJoin=iconEdge===\"round\"?\"round\":\"miter\";const strokeWidth=Math.max(1,Math.min(4,iconWeight))// Ensure stroke width is between 1-4px\n;return /*#__PURE__*/_jsx(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-hidden\":\"true\",style:{shapeRendering:\"crispEdges\",strokeWidth:`${strokeWidth}px`},children:/*#__PURE__*/_jsx(\"path\",{d:\"M10 3L4.5 8.5L2 6\",stroke:iconColor,strokeWidth:strokeWidth,strokeLinecap:lineCap,strokeLinejoin:lineJoin})});}catch(error){console.error(\"Error rendering icon:\",error);return null;}},[isChecked,props.style?.type,props.style?.icon?.preview,iconType,customIcon,iconSize,iconEdge,iconColor,iconWeight]);const renderSwatch=React.useCallback(()=>{try{const state=isChecked?selectedState:isHovered?hoverState:defaultState;const borderConfig=state.border;const containerRadius=radiusPerSide?`${radiusTopLeft}px ${radiusTopRight}px ${radiusBottomRight}px ${radiusBottomLeft}px`:`${radius}px`;// Handle both single and per-side border widths\nconst borderTop=borderConfig.width.isMixed?borderConfig.width.top:borderConfig.width.defaultValue??1;const borderRight=borderConfig.width.isMixed?borderConfig.width.right:borderConfig.width.defaultValue??1;const borderBottom=borderConfig.width.isMixed?borderConfig.width.bottom:borderConfig.width.defaultValue??1;const borderLeft=borderConfig.width.isMixed?borderConfig.width.left:borderConfig.width.defaultValue??1;// Calculate inner dimensions accounting for border width and space\nconst totalBorderWidth=borderLeft+borderRight;const totalBorderHeight=borderTop+borderBottom;const totalSpace=swatchBorder*2;const innerWidth=Math.max(0,width-totalBorderWidth-totalSpace);const innerHeight=Math.max(0,height-totalBorderHeight-totalSpace);// Calculate inner radius accounting for border width and space\nconst innerRadius=radiusPerSide?`${Math.max(0,radiusTopLeft-swatchBorder-borderTop)}px ${Math.max(0,radiusTopRight-swatchBorder-borderRight)}px ${Math.max(0,radiusBottomRight-swatchBorder-borderBottom)}px ${Math.max(0,radiusBottomLeft-swatchBorder-borderLeft)}px`:`${Math.max(0,radius-swatchBorder-borderTop)}px`// Use borderTop for uniform radius calculation\n;const containerBorderStyle={borderTop:`${borderTop}px ${borderConfig.style} ${borderConfig.color}`,borderRight:`${borderRight}px ${borderConfig.style} ${borderConfig.color}`,borderBottom:`${borderBottom}px ${borderConfig.style} ${borderConfig.color}`,borderLeft:`${borderLeft}px ${borderConfig.style} ${borderConfig.color}`};if(swatchType===\"image\"&&swatchImage){return /*#__PURE__*/_jsx(\"div\",{style:{width:width,height:height,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:containerRadius,...containerBorderStyle,background:state.background,boxSizing:\"border-box\",flexShrink:0,transition:\"all 0.2s ease-in-out\",overflow:\"hidden\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:innerWidth,height:innerHeight,position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",borderRadius:innerRadius,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"img\",{src:swatchImage,alt:`Swatch for ${getDisplayText()}`,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})});}// Get the color based on type\nlet color=swatchColor;if(swatchType===\"color\"&&props.style?.swatchColorType===\"dynamic\"){// In canvas preview, use the specified color\nif(RenderTarget.current()===\"CANVAS\"){color=\"#8A8A8A\";}else{// In browser, try to get the color from window.__FcCheckoutConfigs\nif(typeof window!==\"undefined\"&&window.__FcCheckoutConfigs?.variantColorValues){try{// For variants, use just the variant value (lowercase) to find the color mapping\nif(property===\"variant\"){const colorName=variantValue.toLowerCase();const colorMapping=window.__FcCheckoutConfigs.variantColorValues.find(c=>c.name.toLowerCase()===colorName);if(colorMapping?.hex){color=colorMapping.hex;}}}catch(error){console.error(\"Error getting dynamic color:\",error);}}}}return /*#__PURE__*/_jsx(\"div\",{style:{width:width,height:height,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:containerRadius,...containerBorderStyle,background:state.background,boxSizing:\"border-box\",flexShrink:0,transition:\"all 0.2s ease-in-out\",overflow:\"hidden\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:innerWidth,height:innerHeight,position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",backgroundColor:color,borderRadius:innerRadius,minWidth:0,minHeight:0}})});}catch(error){console.error(\"Error rendering swatch:\",error);return null;}},[width,height,swatchType,swatchImage,swatchColor,swatchBorder,radius,radiusPerSide,radiusTopLeft,radiusTopRight,radiusBottomRight,radiusBottomLeft,isChecked,isHovered,defaultState,hoverState,selectedState,getDisplayText,props.style?.swatchColorType,property,variantValue]);// Render checkbox and text with improved accessibility\ntry{return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,ref:componentRef,onClick:handleChange,onKeyDown:handleKeyDown,role:\"checkbox\",\"aria-checked\":isChecked,tabIndex:0,\"data-filter-id\":componentId,\"data-filter-type\":normalizedProperty,\"data-filter-value\":typeof value===\"string\"?value:JSON.stringify(getFilterValueForComponent()),onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),onTouchStart:()=>setIsHovered(true),onTouchEnd:()=>setIsHovered(false),onTouchCancel:()=>setIsHovered(false),\"aria-label\":`Filter by ${getDisplayText()}`,children:[props.style?.type===\"checkbox\"&&/*#__PURE__*/_jsx(\"div\",{style:checkboxStyle,children:renderIcon()}),props.style?.type===\"swatch\"&&renderSwatch(),showText&&/*#__PURE__*/_jsx(\"p\",{style:textStyle,children:property===\"variant\"?getDisplayText():displayText||getDisplayText()})]});}catch(error){console.error(\"Error rendering filter component:\",error);return /*#__PURE__*/_jsx(\"div\",{style:{padding:\"10px\",color:\"red\"},children:\"Error rendering filter component\"});}}addPropertyControls(FC_CatalogFilterButton,{// Style controls\nstyle:{type:ControlType.Object,title:\"Style\",controls:{type:{type:ControlType.Enum,title:\"Type\",options:[\"checkbox\",\"swatch\",\"button\"],optionTitles:[\"Checkbox\",\"Swatch\",\"Button\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",defaultValue:\"checkbox\"},width:{type:ControlType.Number,title:\"Width\",defaultValue:24,min:8,max:104,step:8,displayStepper:true,hidden:({type})=>type===\"button\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:24,min:8,max:104,step:8,displayStepper:true,hidden:({type})=>type===\"button\"},radius:{type:ControlType.FusedNumber,title:\"Radius\",defaultValue:4,toggleKey:\"radiusPerSide\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"radiusTopLeft\",\"radiusTopRight\",\"radiusBottomRight\",\"radiusBottomLeft\"],valueLabels:[\"TL\",\"TR\",\"BR\",\"BL\"],min:0},swatchType:{type:ControlType.Enum,title:\"Swatch\",options:[\"image\",\"color\"],optionTitles:[\"Image\",\"Color\"],defaultValue:\"color\",displaySegmentedControl:true,hidden:({type})=>type!==\"swatch\"},swatchColorType:{type:ControlType.Enum,title:\"Color\",options:[\"hex\",\"dynamic\"],optionTitles:[\"Hex\",\"Dynamic\"],defaultValue:\"hex\",displaySegmentedControl:true,description:\"Set hex code or use dynamic variant colors set in the plugin.\",hidden:({type,swatchType})=>type!==\"swatch\"||swatchType!==\"color\"},swatchImage:{type:ControlType.Image,title:\"Image\",hidden:({type,swatchType})=>type!==\"swatch\"||swatchType!==\"image\"},swatchColor:{type:ControlType.Color,title:\"Hex\",defaultValue:\"#000000\",hidden:({type,swatchType,swatchColorType})=>type!==\"swatch\"||swatchType!==\"color\"||swatchColorType!==\"hex\"},swatchBorder:{type:ControlType.Number,title:\"Space\",defaultValue:4,min:0,max:20,step:1,description:\"Space around swatch and border\",hidden:({type})=>type!==\"swatch\"},icon:{type:ControlType.Object,title:\"Icon\",hidden:({type})=>type!==\"checkbox\",controls:{preview:{type:ControlType.Boolean,title:\"Preview\",defaultValue:false},type:{type:ControlType.Enum,title:\"Icon\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Custom\"],defaultValue:\"default\",displaySegmentedControl:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\",hidden:({type})=>type!==\"default\"},weight:{type:ControlType.Number,title:\"Weight\",defaultValue:2,min:.5,max:4,step:.5,hidden:({type})=>type!==\"default\"},edge:{type:ControlType.Enum,title:\"Edge\",options:[\"hard\",\"round\"],optionTitles:[\"Hard\",\"Round\"],defaultValue:\"round\",displaySegmentedControl:true,hidden:({type})=>type!==\"default\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:12,min:8,max:24,step:1},customIcon:{type:ControlType.Image,title:\"Image\",hidden:({type})=>type!==\"custom\"}}},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:40,step:1,hidden:({type})=>type===\"button\"},padding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:8,toggleKey:\"paddingPerSide\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},stacked:{type:ControlType.Enum,title:\"Layout\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true,defaultValue:\"horizontal\",hidden:({type})=>type===\"button\"}}},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},default:{type:ControlType.Object,title:\"Default\",controls:{textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},border:{type:ControlType.Object,title:\"Border\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},width:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},style:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"}}},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"}}},hover:{type:ControlType.Object,title:\"Hover\",controls:{textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#333333\"},border:{type:ControlType.Object,title:\"Border\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},width:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},style:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"}}},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"}}},selected:{type:ControlType.Object,title:\"Selected\",controls:{textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},border:{type:ControlType.Object,title:\"Border\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},width:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},style:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"}}},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"}}},// Filter Type Toggle\n// filterType: {\n//     type: ControlType.Enum,\n//     title: \"Filter\",\n//     options: [\"shopify\", \"cms\"],\n//     optionTitles: [\"Shopify\", \"CMS\"],\n//     displaySegmentedControl: true,\n//     defaultValue: \"shopify\",\n// },\n// // CMS specific controls\n// cmsTitle: {\n//     type: ControlType.String,\n//     title: \"CMS Title\",\n//     placeholder: \"Category\",\n//     hidden: (props) => props.filterType !== \"cms\",\n// },\n// cmsValue: {\n//     type: ControlType.String,\n//     title: \"CMS Value\",\n//     placeholder: \"Fashion\",\n//     hidden: (props) => props.filterType !== \"cms\",\n// },\n// Functional props\nproperty:{type:ControlType.Enum,title:\"Property\",options:[\"variant\",\"product-type\",\"product-tag\",\"collection\",\"price\",\"on-sale\",\"discount\",\"in-stock\",\"subscriptions\"],optionTitles:[\"Variant\",\"Product Type\",\"Product Tag\",\"Collection\",\"Price\",\"On Sale\",\"Discount\",\"In Stock\",\"Subscriptions\"],defaultValue:\"price\",hidden:props=>props.filterType===\"cms\"},// Collection, Product Type, Product Tag value\nvalue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",hidden:props=>{if(props.filterType===\"cms\")return true;const validProperties=[\"collection\",\"product-type\",\"product-tag\"];return!validProperties.includes(String(props.property));}},displayText:{type:ControlType.String,title:\"Display Text\",description:\"If not set, value will be used.\",hidden:props=>props.property===\"variant\"},// Price filter controls\npriceType:{type:ControlType.Enum,title:\"Type\",options:[\"Range\",\"Under\",\"Over\"],optionTitles:[\"Range\",\"Under\",\"Over\"],defaultValue:\"Under\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>props.property!==\"price\"||props.filterType===\"cms\"},priceThreshold:{type:ControlType.Number,title:\"Under\",defaultValue:100,min:0,step:1,hidden:props=>props.property!==\"price\"||props.priceType!==\"Under\"||props.filterType===\"cms\"},priceOver:{type:ControlType.Number,title:\"Over\",defaultValue:50,min:0,step:1,hidden:props=>props.property!==\"price\"||props.priceType!==\"Over\"||props.filterType===\"cms\"},priceLow:{type:ControlType.Number,title:\"Price Low\",defaultValue:50,min:0,step:1,hidden:props=>props.property!==\"price\"||props.priceType!==\"Range\"||props.filterType===\"cms\"},priceHigh:{type:ControlType.Number,title:\"Price High\",defaultValue:100,min:0,step:1,hidden:props=>props.property!==\"price\"||props.priceType!==\"Range\"||props.filterType===\"cms\"},// Discount filter controls\ndiscountType:{type:ControlType.Enum,title:\"Discount\",options:[\"Percent\",\"Amount\"],optionTitles:[\"Percent\",\"Amount\"],defaultValue:\"Percent\",displaySegmentedControl:true,hidden:props=>props.property!==\"discount\"||props.filterType===\"cms\"},discountValueType:{type:ControlType.Enum,title:\"Type\",options:[\"Range\",\"Over\"],optionTitles:[\"Range\",\"Over\"],defaultValue:\"Over\",displaySegmentedControl:true,hidden:props=>props.property!==\"discount\"||props.filterType===\"cms\"},discountThreshold:{type:ControlType.Number,title:\"Discount Threshold\",defaultValue:100,min:0,step:1,hidden:props=>props.property!==\"discount\"||props.discountValueType!==\"Over\"||props.filterType===\"cms\"},discountLow:{type:ControlType.Number,title:\"Discount Low\",defaultValue:50,min:0,step:1,hidden:props=>props.property!==\"discount\"||props.discountValueType!==\"Range\"||props.filterType===\"cms\"},discountHigh:{type:ControlType.Number,title:\"Discount High\",defaultValue:100,min:0,step:1,hidden:props=>props.property!==\"discount\"||props.discountValueType!==\"Range\"||props.filterType===\"cms\"},// Variant controls\nvariantTitle:{type:ControlType.String,title:\"Title\",defaultValue:\"Size\",hidden:props=>props.property!==\"variant\"||props.filterType===\"cms\"||props.variantType===\"Metafield\"},variantValue:{type:ControlType.String,title:\"Value\",defaultValue:\"Large\",hidden:props=>props.property!==\"variant\"||props.filterType===\"cms\"},variantDisplayText:{type:ControlType.String,title:\"Display Text\",description:\"If not set, Value will be displayed.\",hidden:props=>props.property!==\"variant\"||props.filterType===\"cms\"},showText:{type:ControlType.Boolean,title:\"Show Text\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.property!==\"variant\"||props.filterType===\"cms\"},variantStockFilter:{type:ControlType.Enum,title:\"In Stock Only\",options:[\"all\",\"in_stock\"],optionTitles:[\"No\",\"Yes\"],defaultValue:\"all\",displaySegmentedControl:true,hidden:props=>props.property!==\"variant\"||props.filterType===\"cms\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_CatalogFilterButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_CatalogFilterButton.map","// Generated by Framer (dc5e905)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Distrampler Regular\"]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-sxuM3 .framer-styles-preset-1gqgztm:not(.rich-text-wrapper), .framer-sxuM3 .framer-styles-preset-1gqgztm.rich-text-wrapper h4 { --framer-font-family: \\\"Distrampler Regular\\\", \\\"Distrampler Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 26px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }\"];export const className=\"framer-sxuM3\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (df7882f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/ad9yhLXM3V5IbFDVLQMe/4pIa6vx1cUsqsIvPAa5P/vXV_emMSy.js\";const enabledGestures={xkdnEiuHh:{hover:true}};const cycleOrder=[\"xkdnEiuHh\",\"vhEBT4ddz\"];const serializationHash=\"framer-OxyEo\";const variantClassNames={vhEBT4ddz:\"framer-v-11xtckm\",xkdnEiuHh:\"framer-v-i4nhwa\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.4,ease:[.12,.23,.5,1],type:\"tween\"};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 Variants=motion.create(React.Fragment);const humanReadableVariantMap={Selected:\"vhEBT4ddz\",Unselected:\"xkdnEiuHh\"};const getProps=({buttonText,click,height,id,link,textColor,width,...props})=>{return{...props,AmGuBqmEj:click??props.AmGuBqmEj,CEQqGDIRY:link??props.CEQqGDIRY,DulOHSb8k:textColor??props.DulOHSb8k??\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",mrH_Wk5Rw:buttonText??props.mrH_Wk5Rw??\"Text\",variant:humanReadableVariantMap[props.variant]??props.variant??\"xkdnEiuHh\"};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,mrH_Wk5Rw,DulOHSb8k,CEQqGDIRY,AmGuBqmEj,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"xkdnEiuHh\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap12a54d5=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(AmGuBqmEj){const res=await AmGuBqmEj(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);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,{href:CEQqGDIRY,motionChild:true,nodeId:\"xkdnEiuHh\",openInNewTab:false,scopeId:\"c3uWzgU6f\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-i4nhwa\",className,classNames)} framer-dkx8db`,\"data-framer-name\":\"Unselected\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"xkdnEiuHh\",onTap:onTap12a54d5,ref:refBinding,style:{...style},...addPropertyOverrides({\"xkdnEiuHh-hover\":{\"data-framer-name\":undefined},vhEBT4ddz:{\"data-framer-name\":\"Selected\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{className:\"framer-styles-preset-1gqgztm\",\"data-styles-preset\":\"vXV_emMSy\",style:{\"--framer-text-color\":\"var(--extracted-1eung3n, var(--variable-reference-DulOHSb8k-c3uWzgU6f))\"},children:\"Text\"})}),className:\"framer-14n0edg\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OwzhdPk1M\",style:{\"--extracted-1eung3n\":\"var(--variable-reference-DulOHSb8k-c3uWzgU6f)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-DulOHSb8k-c3uWzgU6f\":DulOHSb8k},text:mrH_Wk5Rw,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-16ge4lm\",layoutDependency:layoutDependency,layoutId:\"P766JM1OC\",style:{backgroundColor:DulOHSb8k}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-OxyEo.framer-dkx8db, .framer-OxyEo .framer-dkx8db { display: block; }\",\".framer-OxyEo.framer-i4nhwa { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-OxyEo .framer-14n0edg { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-OxyEo .framer-16ge4lm { flex: none; height: 1px; overflow: hidden; position: relative; width: 0px; }\",\".framer-OxyEo.framer-v-11xtckm .framer-16ge4lm, .framer-OxyEo.framer-v-i4nhwa.hover .framer-16ge4lm { align-self: stretch; width: auto; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 29.5\n * @framerIntrinsicWidth 43\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"vhEBT4ddz\":{\"layout\":[\"auto\",\"auto\"]},\"zYRgubWip\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"mrH_Wk5Rw\":\"buttonText\",\"DulOHSb8k\":\"textColor\",\"CEQqGDIRY\":\"link\",\"AmGuBqmEj\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerc3uWzgU6f=withCSS(Component,css,\"framer-OxyEo\");export default Framerc3uWzgU6f;Framerc3uWzgU6f.displayName=\"Link - Larger\";Framerc3uWzgU6f.defaultProps={height:29.5,width:43};addPropertyControls(Framerc3uWzgU6f,{variant:{options:[\"xkdnEiuHh\",\"vhEBT4ddz\"],optionTitles:[\"Unselected\",\"Selected\"],title:\"Variant\",type:ControlType.Enum},mrH_Wk5Rw:{defaultValue:\"Text\",displayTextArea:false,title:\"Button Text\",type:ControlType.String},DulOHSb8k:{defaultValue:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",title:\"Text Color\",type:ControlType.Color},CEQqGDIRY:{title:\"Link\",type:ControlType.Link},AmGuBqmEj:{title:\"Click\",type:ControlType.EventHandler}});addFonts(Framerc3uWzgU6f,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerc3uWzgU6f\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"mrH_Wk5Rw\\\":\\\"buttonText\\\",\\\"DulOHSb8k\\\":\\\"textColor\\\",\\\"CEQqGDIRY\\\":\\\"link\\\",\\\"AmGuBqmEj\\\":\\\"click\\\"}\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"vhEBT4ddz\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zYRgubWip\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"29.5\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"43\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./c3uWzgU6f.map","// Generated by Framer (df7882f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,ResolveLinks,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import FC_CatalogFilterButton from\"https://framerusercontent.com/modules/C5s4mO0gBJtqskC4YAhz/MEadtt1HqvclACBtUYnM/FC_CatalogFilterButton.js\";import LinkLarger from\"https://framerusercontent.com/modules/pId37CTKtDKOjBQpw43q/uQhVHFsy7Z1BwE1lKo5G/c3uWzgU6f.js\";const LinkLargerFonts=getFonts(LinkLarger);const FC_CatalogFilterButtonFonts=getFonts(FC_CatalogFilterButton);const serializationHash=\"framer-ZBfWZ\";const variantClassNames={je0UG6FZB:\"framer-v-1nvna9b\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const equals=(a,b)=>{return typeof a===\"string\"&&typeof b===\"string\"?a.toLowerCase()===b.toLowerCase():a===b;};const convertFromBoolean=(value,activeLocale)=>{if(value){return\"vhEBT4ddz\";}else{return\"xkdnEiuHh\";}};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 Variants=motion.create(React.Fragment);const getProps=({active,height,id,visibilitySubmenu,width,...props})=>{return{...props,aZdAxxkYZ:visibilitySubmenu??props.aZdAxxkYZ??true,O9Mex4kEo:active??props.O9Mex4kEo};};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,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,O9Mex4kEo,aZdAxxkYZ,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"je0UG6FZB\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1nvna9b\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"je0UG6FZB\",ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":GuA5Vk9g5\",pathVariables:{Cz31FlVUp:\"todos\"},unresolvedPathSlugs:{Cz31FlVUp:{collectionId:\"CA8xcIn3E\",collectionItemId:\"GYV4lNmnp\"}},webPageId:\"vSqW0uK4p\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1jxzar-container\",layoutDependency:layoutDependency,layoutId:\"yxPiF9MYW-container\",nodeId:\"yxPiF9MYW\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(LinkLarger,{CEQqGDIRY:resolvedLinks[0],DulOHSb8k:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",height:\"100%\",id:\"yxPiF9MYW\",layoutId:\"yxPiF9MYW\",mrH_Wk5Rw:\"Todos\",variant:convertFromBoolean(equals(O9Mex4kEo,\"Todos\"),activeLocale),width:\"100%\"})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1d8bu7z\",\"data-framer-name\":\"Vinhos Wrapper\",layoutDependency:layoutDependency,layoutId:\"UbeuprbLb\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":GuA5Vk9g5\",pathVariables:{Cz31FlVUp:\"vinhos\"},unresolvedPathSlugs:{Cz31FlVUp:{collectionId:\"CA8xcIn3E\",collectionItemId:\"KrcBoU4MU\"}},webPageId:\"vSqW0uK4p\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+0+66+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-owsvwm-container\",layoutDependency:layoutDependency,layoutId:\"Mt9fnFJ46-container\",nodeId:\"Mt9fnFJ46\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(LinkLarger,{CEQqGDIRY:resolvedLinks1[0],DulOHSb8k:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",height:\"100%\",id:\"Mt9fnFJ46\",layoutId:\"Mt9fnFJ46\",mrH_Wk5Rw:\"Vinhos\",variant:convertFromBoolean(equals(O9Mex4kEo,\"Vinhos\"),activeLocale),width:\"100%\"})})})}),aZdAxxkYZ&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-9f3w6p\",layoutDependency:layoutDependency,layoutId:\"CKpfytUyB\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1bzx2jo-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"Pxk0ojekN-container\",nodeId:\"Pxk0ojekN\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(FC_CatalogFilterButton,{default:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-90f42d24-2e84-4489-98e2-179bc27006d8, rgb(134, 134, 134))\"},discountHigh:100,discountLow:50,discountThreshold:100,discountType:\"Percent\",discountValueType:\"Over\",displayText:\"Tinto\",font:{fontFamily:'\"Distrampler Regular\", \"Distrampler Regular Placeholder\", sans-serif',fontSize:\"20px\",letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",hover:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"rgb(0, 0, 0)\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"rgb(51, 51, 51)\"},id:\"Pxk0ojekN\",layoutId:\"Pxk0ojekN\",priceHigh:100,priceLow:50,priceOver:50,priceThreshold:100,priceType:\"Under\",property:\"collection\",selected:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\"},showText:true,style:{gap:8,height:24,icon:{color:\"rgb(0, 0, 0)\",edge:\"round\",preview:false,size:12,type:\"custom\",weight:2},padding:8,paddingBottom:8,paddingLeft:8,paddingPerSide:false,paddingRight:8,paddingTop:8,radius:4,radiusBottomLeft:4,radiusBottomRight:4,radiusPerSide:false,radiusTopLeft:4,radiusTopRight:4,stacked:\"horizontal\",swatchBorder:4,swatchColor:\"rgb(0, 0, 0)\",swatchColorType:\"hex\",swatchType:\"color\",type:\"checkbox\",width:24},value:\"Vinhos Tintos\",variantDisplayText:\"\",variantStockFilter:\"all\",variantTitle:\"Size\",variantValue:\"Large\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1gswjvc-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"u66iP9NYt-container\",nodeId:\"u66iP9NYt\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(FC_CatalogFilterButton,{default:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-90f42d24-2e84-4489-98e2-179bc27006d8, rgb(134, 134, 134))\"},discountHigh:100,discountLow:50,discountThreshold:100,discountType:\"Percent\",discountValueType:\"Over\",displayText:\"Branco\",font:{fontFamily:'\"Distrampler Regular\", \"Distrampler Regular Placeholder\", sans-serif',fontSize:\"20px\",letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",hover:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"rgb(0, 0, 0)\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"rgb(51, 51, 51)\"},id:\"u66iP9NYt\",layoutId:\"u66iP9NYt\",priceHigh:100,priceLow:50,priceOver:50,priceThreshold:100,priceType:\"Under\",property:\"collection\",selected:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\"},showText:true,style:{gap:8,height:24,icon:{color:\"rgb(0, 0, 0)\",edge:\"round\",preview:false,size:12,type:\"custom\",weight:2},padding:8,paddingBottom:8,paddingLeft:8,paddingPerSide:false,paddingRight:8,paddingTop:8,radius:4,radiusBottomLeft:4,radiusBottomRight:4,radiusPerSide:false,radiusTopLeft:4,radiusTopRight:4,stacked:\"horizontal\",swatchBorder:4,swatchColor:\"rgb(0, 0, 0)\",swatchColorType:\"hex\",swatchType:\"color\",type:\"checkbox\",width:24},value:\"Vinhos Brancos\",variantDisplayText:\"\",variantStockFilter:\"all\",variantTitle:\"Size\",variantValue:\"Large\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1nb20mz-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"tv58glqU9-container\",nodeId:\"tv58glqU9\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(FC_CatalogFilterButton,{default:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-90f42d24-2e84-4489-98e2-179bc27006d8, rgb(134, 134, 134))\"},discountHigh:100,discountLow:50,discountThreshold:100,discountType:\"Percent\",discountValueType:\"Over\",displayText:\"Ros\\xe9\",font:{fontFamily:'\"Distrampler Regular\", \"Distrampler Regular Placeholder\", sans-serif',fontSize:\"20px\",letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",hover:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"rgb(0, 0, 0)\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"rgb(51, 51, 51)\"},id:\"tv58glqU9\",layoutId:\"tv58glqU9\",priceHigh:100,priceLow:50,priceOver:50,priceThreshold:100,priceType:\"Under\",property:\"collection\",selected:{background:\"rgb(255, 255, 255)\",border:{bottom:1,color:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\",isMixed:false,left:1,right:1,style:\"solid\",top:1,width:1},textColor:\"var(--token-85ff8134-9c1f-4402-839c-1ea365a0c8b6, rgb(131, 106, 67))\"},showText:true,style:{gap:8,height:24,icon:{color:\"rgb(0, 0, 0)\",edge:\"round\",preview:false,size:12,type:\"custom\",weight:2},padding:8,paddingBottom:8,paddingLeft:8,paddingPerSide:false,paddingRight:8,paddingTop:8,radius:4,radiusBottomLeft:4,radiusBottomRight:4,radiusPerSide:false,radiusTopLeft:4,radiusTopRight:4,stacked:\"horizontal\",swatchBorder:4,swatchColor:\"rgb(0, 0, 0)\",swatchColorType:\"hex\",swatchType:\"color\",type:\"checkbox\",width:24},value:\"Vinhos Ros\\xe9\",variantDisplayText:\"\",variantStockFilter:\"all\",variantTitle:\"Size\",variantValue:\"Large\",width:\"100%\"})})})]})]}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":GuA5Vk9g5\",pathVariables:{Cz31FlVUp:\"cacha\\xe7as\"},unresolvedPathSlugs:{Cz31FlVUp:{collectionId:\"CA8xcIn3E\",collectionItemId:\"mLlO5614_\"}},webPageId:\"vSqW0uK4p\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+0+742,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-uwj0q0-container\",layoutDependency:layoutDependency,layoutId:\"MYDsxBZqa-container\",nodeId:\"MYDsxBZqa\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(LinkLarger,{CEQqGDIRY:resolvedLinks2[0],DulOHSb8k:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",height:\"100%\",id:\"MYDsxBZqa\",layoutId:\"MYDsxBZqa\",mrH_Wk5Rw:\"Cacha\\xe7as\",variant:convertFromBoolean(equals(O9Mex4kEo,\"Cacha\\xe7as\"),activeLocale),width:\"100%\"})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":GuA5Vk9g5\",pathVariables:{Cz31FlVUp:\"grife\"},unresolvedPathSlugs:{Cz31FlVUp:{collectionId:\"CA8xcIn3E\",collectionItemId:\"Bw9ezR7JP\"}},webPageId:\"vSqW0uK4p\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+0+808,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ivj2dw-container\",layoutDependency:layoutDependency,layoutId:\"F0dPpYOQq-container\",nodeId:\"F0dPpYOQq\",rendersWithMotion:true,scopeId:\"RFgWkuAas\",children:/*#__PURE__*/_jsx(LinkLarger,{CEQqGDIRY:resolvedLinks3[0],DulOHSb8k:\"var(--token-f735b20f-2aa3-4ee8-8eec-ccdb0ed2bba4, rgb(0, 0, 0))\",height:\"100%\",id:\"F0dPpYOQq\",layoutId:\"F0dPpYOQq\",mrH_Wk5Rw:\"Grife\",variant:convertFromBoolean(equals(O9Mex4kEo,\"Grife\"),activeLocale),width:\"100%\"})})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-ZBfWZ.framer-1efn19m, .framer-ZBfWZ .framer-1efn19m { display: block; }\",\".framer-ZBfWZ.framer-1nvna9b { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px 0px 80px 0px; position: relative; width: min-content; }\",\".framer-ZBfWZ .framer-1jxzar-container, .framer-ZBfWZ .framer-owsvwm-container, .framer-ZBfWZ .framer-1bzx2jo-container, .framer-ZBfWZ .framer-1gswjvc-container, .framer-ZBfWZ .framer-1nb20mz-container, .framer-ZBfWZ .framer-uwj0q0-container, .framer-ZBfWZ .framer-1ivj2dw-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-ZBfWZ .framer-1d8bu7z { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-ZBfWZ .framer-9f3w6p { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 442\n * @framerIntrinsicWidth 120.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"O9Mex4kEo\":\"active\",\"aZdAxxkYZ\":\"visibilitySubmenu\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerRFgWkuAas=withCSS(Component,css,\"framer-ZBfWZ\");export default FramerRFgWkuAas;FramerRFgWkuAas.displayName=\"Filtros\";FramerRFgWkuAas.defaultProps={height:442,width:120.5};addPropertyControls(FramerRFgWkuAas,{O9Mex4kEo:{defaultValue:\"\",title:\"Active\",type:ControlType.String},aZdAxxkYZ:{defaultValue:true,title:\"Visibility | Submenu\",type:ControlType.Boolean}});addFonts(FramerRFgWkuAas,[{explicitInter:true,fonts:[{family:\"Distrampler Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/wGLK367iXShyzfiZu2O9rTWQnMA.woff2\"}]},...LinkLargerFonts,...FC_CatalogFilterButtonFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRFgWkuAas\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"442\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"O9Mex4kEo\\\":\\\"active\\\",\\\"aZdAxxkYZ\\\":\\\"visibilitySubmenu\\\"}\",\"framerIntrinsicWidth\":\"120.5\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (dc5e905)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Distrampler Regular\"]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-2odL0 .framer-styles-preset-17b3cvr:not(.rich-text-wrapper), .framer-2odL0 .framer-styles-preset-17b3cvr.rich-text-wrapper h3 { --framer-font-family: \\\"Distrampler Regular\\\", \\\"Distrampler Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 30px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }\"];export const className=\"framer-2odL0\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}