{"version":3,"file":"Loading.DnjVCtzO.mjs","names":["useState","get","React.useMemo","useRef","useCallback","product","index","e","variantId","variants","activeVariant","value","config","props","dispatchOptionSelectedEvent","selectedOptions","combinations","border","background","variant","mask","Base","MotionSVG","SVG","svg","getProps","Icon","addPropertyOverrides","enabledGestures","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","RichText","mask","SVG","getProps","Icon","getProps","Icon","addPropertyOverrides","House","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","addPropertyOverrides","HomeLink","ChevronRight","TextLink","DotsThree","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","RichText","useState","e","maxQuantity","useState","e","p","product","Material","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","useState","e","React","x","e","p","useState","useRef","useCallback","get","countryCode","product","e","required","useState","useCallback","e","get","controls","useRef","React.useCallback"],"sources":["https:/framerusercontent.com/modules/LexXLRVKTdoqiCBn8fDM/O6pNXVMa2Y4mB9woBhKc/FC_ProductVariants_v1.js","https:/framerusercontent.com/modules/d0hoNrRpYn872KjSwEK4/maLO4KP3jwxcoPSt5zHS/PJrK4EEcb.js","https:/framerusercontent.com/modules/EkY4kAGeYVXNTjCuowPt/fv6gJPPhM3sX1TW2yRww/X_7w8ccj8.js","https:/framerusercontent.com/modules/emeX5mtK81zY3xjRZZog/yPJrR3NnFteL79l7EdeJ/GJPlvTOnP.js","https:/framerusercontent.com/modules/FVmCnCqw20xX4DJfDJYm/SFCB7H15XZWu6ihL6WN7/u5jXKuGDk.js","https:/framerusercontent.com/modules/prJr5QLUaeNr5NTSOntq/x95MOzZ2xfHcap9iInQw/sBqTscSFa.js","https:/framerusercontent.com/modules/ie3ROHNvAJSyBgoMB2Xr/oDWFM7qJjNmLrrxvwkTO/ajzrTqFH4.js","https:/framerusercontent.com/modules/9d7NCy9r61zUnKd7fUYc/Ef9gsuDxexGzWrGUlTio/FC_ProductQuantitySelector.js","https:/framerusercontent.com/modules/Yp0x1eOB8wYfdZ5ynteC/r7hqYsrIXsavT2vaQAlN/FC_ProductQuantityButton.js","https:/framerusercontent.com/modules/nOzOKGLAl3Fjc1O9o4XV/zpAwpP13lPEpMdFdugxg/KpaWg5ZuQ.js","https:/framerusercontent.com/modules/7Z72fBmwu5jHgTb4o8mq/NLZJweVd9xvcnZj0DOGK/FC_ProductImageVariant.js","https:/framerusercontent.com/modules/INYPwCPKuEopCxerESUD/IoqOtL9RnRyjif3stNAw/FC_ProductImageVariantThumbnail.js","https:/framerusercontent.com/modules/FXrY3V9ZYVL8aziafDQn/HIuMDRrKIIcsJe65kZwo/initialize.js","https:/framerusercontent.com/modules/DfixsupJND2Hhr1xcPbk/zYiTTDRsHtf2S3Zf8E7G/FC_ProductPurchaseButton.js","https:/framerusercontent.com/modules/B12xzzGu5tV27jDrWyaW/dyGmYzzIUDiXU0ubHYzE/FC_ProductVariantState.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/NQ9LlTfXzHTRhTTi6qMI/5u9VoSaQM7qxLI2scUcH/Loading.js"],"sourcesContent":["/*\n * Framer Commerce\n * Confidential and Proprietary - All Rights Reserved\n * Unauthorized use, reproduction, distribution, or disclosure of this\n * source code or any related information is strictly prohibited.\n *\n * This software is the exclusive property of Framer Commerce (\"Company\").\n * It is considered highly confidential and proprietary information.\n *\n * Any use, copying, modification, distribution, or sharing of this software,\n * in whole or in part, without the express written permission of the Company\n * is strictly prohibited and may result in legal action.\n *\n * DISCLAIMER: This software does not provide any express or\n * implied warranties, including, but not limited to, the implied warranties\n * of merchantability and fitness for a particular purpose. In no event shall\n * Framer Commerce be liable for any direct, indirect, incidental, special,\n * exemplary, or consequential damages (including, but not limited to, procurement\n * of substitute goods or services; loss of use, data, or profits; or business\n * interruption) however caused and on any theory of liability, whether in\n * contract, strict liability, or tort (including negligence or otherwise)\n * arising in any way out of the use of this software, even if advised of\n * the possibility of such damage.\n *\n * Any unauthorized possession, use, copying, distribution, or dissemination\n * of this software will be considered a breach of confidentiality and may\n * result in legal action.\n *\n * For inquiries, contact:\n * Framer Commerce\n * Email: hello@framercommerce.com\n *\n * © 2025 Butter Supply Inc. All Rights Reserved.\n *//*\n * Note: This component is not yet ready for use.\n * It replaces the referenced Framer import and creates the buttons from scratch, which is stable.\n * It also uses CMS data to populate the product data on canvas, which causes critical issues when replacing the code in the existing code component.\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{useCallback,useEffect,useRef,useState}from\"react\";// Internal\nimport{addPropertyControls,ControlType}from\"framer\";// Helper to determine if the component is in a purchase action mode\nconst __isPurchaseMode=act=>act===\"Add to Cart\"||act===\"Buy Now\";import{get}from\"lodash-es\";import{createCartMutation,addToCartMutation}from\"https://framerusercontent.com/modules/yiRfl1JCGhIBUL31WVDk/wupS2XmBAHu1kBQNv9pi/mutations_v2.js\";import{appendAllTrackingParamsToUrl}from\"https://framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/398w6fPyag8B92ojouQr/utmParams.js\";import{appendLanguageToUrl}from\"https://framerusercontent.com/modules/vC6fzbfO83MgBPIhn5zl/DUlbmWuOELzEUenVmv3G/locales.js\";import{trackFacebookPixelAddToCart,trackFacebookPixelInitiateCheckout}from\"https://framerusercontent.com/modules/6Zs9CjkPbKzHjoy8LK08/iqoIwmJw4hztafi4V4IV/Fb_pixel.js\";const VariantDropdown=({opt,filteredValues,isLast,valid,invalidMsg,props,dispatchOptionSelectedEvent,selectedOptions,combinations,index,totalCount})=>{const[isHovered,setIsHovered]=useState(false);const[isFocused,setIsFocused]=useState(false);const{dropdownConfigs}=props;const{font,selected,hover,focus,unselected,radius,padding,icon}=dropdownConfigs;const paddingParts=String(padding).trim().split(/\\s+/);const paddingRight=paddingParts.length>=2?paddingParts[1]:paddingParts[0];const unselectedText=(unselected.text||\"Select {{variant}}\").replace(\"{{variant}}\",opt.name);const currentValue=selectedOptions[opt.name]||unselectedText;const isUnselected=currentValue===unselectedText;// Edge to edge styling - only apply when gap is 0\nconst isLastItem=index===totalCount-1;const gap=Number(props.containerConfigs.gap);const applyEdgeToEdge=gap===0;const isHorizontal=props.containerConfigs.direction===\"horizontal\";// Calculate margin style for edge-to-edge effect\nconst marginStyle={};if(applyEdgeToEdge&&!isLastItem){if(isHorizontal){// For horizontal layout, use negative right margin\nmarginStyle.marginRight=\"-1px\";}else{// For vertical layout, use negative bottom margin\nmarginStyle.marginBottom=\"-1px\";}}// Determine border style based on state (focus uses outline, not border change)\nconst borderWidth=isUnselected?unselected.border.borderWidth:isHovered?hover.border.borderWidth:selected.border.borderWidth;const borderStyle=`${borderWidth}px solid ${isUnselected?unselected.border.borderColor:isHovered?hover.border.borderColor:selected.border.borderColor}`;// Calculate effective outline offset: when offset is 0, subtract border width to align with border edge\nconst effectiveOffset=focus?.offset===0?-borderWidth:focus?.offset||2;// Calculate focus radius: dropdown radius + offset (for pixel values)\nconst calculateFocusRadius=(radiusValue,offset)=>{// Parse the radius value\nconst match=radiusValue.match(/^(\\d+(?:\\.\\d+)?)(px|%)$/);if(!match)return radiusValue// Return as-is if we can't parse it\n;const[,value,unit]=match;if(unit===\"px\"){// For pixel values, add the offset (ensure it doesn't go negative)\nconst numericValue=parseFloat(value);const calculatedRadius=Math.max(0,numericValue+offset);return`${calculatedRadius}px`;}else{// For percentages, return as-is (can't add pixels to percentage)\nreturn radiusValue;}};const focusRadius=calculateFocusRadius(radius,effectiveOffset);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",position:\"relative\",zIndex:isFocused?1:0,overflow:\"visible\",...isHorizontal&&applyEdgeToEdge&&!isLastItem?{marginRight:\"-1px\"}:{}},className:`variant-dropdown-container ${isHorizontal&&applyEdgeToEdge&&!isLastItem?\"horizontal-edge-to-edge\":\"\"}`,\"data-horizontal\":isHorizontal?\"true\":\"false\",\"data-last\":isLastItem?\"true\":\"false\",\"data-edge-to-edge\":applyEdgeToEdge?\"true\":\"false\",children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"0px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:props.titleConfigs.visible||props.selectedConfigs.visible?\"flex\":\"none\",justifyContent:props.titleConfigs.font.textAlign===\"center\"?\"center\":props.titleConfigs.font.textAlign===\"right\"?\"flex-end\":\"flex-start\",marginBottom:get(props,\"containerConfigs.gap2\")!==undefined?get(props,\"containerConfigs.gap2\"):get(props,\"titleConfigs.gap\"),overflow:\"visible\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",overflow:\"visible\"},children:[props.titleConfigs.visible&&/*#__PURE__*/_jsx(\"label\",{id:`variant-title-${opt.name}`,htmlFor:`variant-${opt.name}`,style:{...get(props,\"titleConfigs.font\"),color:get(props,\"titleConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",margin:0,cursor:\"pointer\",textTransform:get(props,\"titleConfigs.textTransform\",\"None\").toLowerCase()},children:(props.titleConfigs.display||\"{{Option}}\").replace(\"{{Option}}\",opt.name)}),props.selectedConfigs.visible&&selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:selectedOptions[opt.name]}),props.selectedConfigs.visible&&props.selectedConfigs.emptyVisible&&!selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:(props.selectedConfigs.emptyText||\"Select {{Option Value}}\").replace(\"{{Option Value}}\",opt.name)})]})}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\"},children:/*#__PURE__*/_jsxs(\"div\",{className:\"dropdown-inner\",style:{position:\"relative\",display:\"flex\",alignItems:\"center\",padding:padding,paddingRight:`calc(${paddingRight} + ${icon.size}px + ${paddingRight})`,backgroundColor:isUnselected?unselected.background:isHovered?hover.background:selected.background,borderRadius:radius,border:borderStyle,cursor:\"pointer\",\"--hover-border-color\":hover.border.borderColor,\"--focus-outline-color\":focus?.color||hover.border.borderColor,\"--focus-outline-width\":`${focus?.width||2}px`,\"--focus-outline-offset\":`${effectiveOffset}px`,\"--focus-outline-radius\":focusRadius,...marginStyle},children:[/*#__PURE__*/_jsx(\"span\",{style:{pointerEvents:\"none\",whiteSpace:\"nowrap\",minWidth:\"max-content\",...font,color:isUnselected?unselected.color:isFocused?hover.color:isHovered?hover.color:selected.color,textTransform:get(props,\"dropdownConfigs.textTransform\",\"None\").toLowerCase()},children:currentValue}),/*#__PURE__*/_jsxs(\"select\",{id:`variant-${opt.name}`,style:{position:\"absolute\",top:0,left:0,right:0,bottom:0,width:\"100%\",height:\"100%\",boxSizing:\"border-box\",appearance:\"none\",WebkitAppearance:\"none\",background:\"transparent\",color:\"transparent\",border:\"none\",padding:0,margin:0,cursor:\"pointer\",outline:\"none\",opacity:0},value:currentValue,onChange:e=>{const value=e.target.value;if(value!==unselectedText){dispatchOptionSelectedEvent(opt.name,value);}},onMouseDown:()=>setIsFocused(true),onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),onFocus:()=>setIsFocused(true),onBlur:()=>setIsFocused(false),onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();const select=e.target;const event=new MouseEvent(\"mousedown\",{bubbles:true,cancelable:true,view:window});select.dispatchEvent(event);}else if(e.key===\"ArrowDown\"||e.key===\"ArrowUp\"){setIsFocused(true);}},\"aria-label\":`Select ${opt.name}`,\"aria-invalid\":!valid,\"aria-required\":\"true\",\"aria-describedby\":!valid?`variant-error-${opt.name}`:undefined,children:[/*#__PURE__*/_jsx(\"option\",{value:unselectedText,disabled:true,children:unselectedText}),filteredValues.map(v=>{let isAvailableForSale;if(props.behaviorConfigs?.filterVariants?.variantGroups===\"all\"){const filtered=Array.from(Object.entries({...selectedOptions,[opt.name]:v}));isAvailableForSale=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value)&&combination.availableForSale);}else{const availableValues=Array.from(new Set(combinations.filter(comb=>comb.availableForSale&&Object.entries(selectedOptions).filter(([key])=>key!==opt.name).every(([key,value])=>comb[key]===value)).map(comb=>comb[opt.name]).filter(Boolean)));isAvailableForSale=availableValues.includes(v);}return /*#__PURE__*/_jsx(\"option\",{value:v,disabled:!isAvailableForSale,style:{color:!isAvailableForSale?unselected.color:selected.color,backgroundColor:!isAvailableForSale?unselected.background:selected.background},children:v},v);})]}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",right:0,top:0,bottom:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:padding,pointerEvents:\"none\"},children:icon.type===\"custom\"&&icon.customIcon?/*#__PURE__*/_jsx(\"img\",{src:icon.customIcon,width:icon.size,height:icon.size,style:{objectFit:\"contain\"},alt:\"Dropdown icon\"}):/*#__PURE__*/_jsx(\"svg\",{width:icon.size,height:icon.size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:icon.type===\"default\"?icon.color:isUnselected?unselected.color:isFocused?hover.color:isHovered?hover.color:icon.color,strokeWidth:icon.weight,strokeLinecap:\"butt\",strokeLinejoin:\"miter\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"6 9 12 15 18 9\"})})})]})}),!valid&&/*#__PURE__*/_jsx(\"div\",{id:`variant-error-${opt.name}`,role:\"alert\",\"aria-live\":\"polite\",style:{color:props.ErrorConfigs.errorColor,...props.ErrorConfigs.errorFont,paddingTop:props.ErrorConfigs.errorPaddingTop},children:invalidMsg})]})},opt.name);};/**\n * @framerDisableUnlink\n *\n * FC_ProductVariants is a component that allows users to select product variants.\n *\n * The 'variants' property accepts a string in the following format:\n * [Option Name: Value1,Value2,Value3 • option_id] •• [Value1/Value2 • variant_id][Value1/Value3 • variant_id2] •• product_id\n *\n * Examples:\n * - Single option: [Size: XS,S,M,L,XL • size_id] •• [XS • variant1][S • variant2][M • variant3][L • variant4][XL • variant5]\n * - Multiple options: [Size: XS,S,M,L,XL • size_id][Color: Blue,Black • color_id] •• [XS/Blue • var1][XS/Black • var2][S/Blue • var3]\n * - With product ID: [Size: XS,S,M,L,XL • size_id] •• [XS • variant1][S • variant2] •• product_123456789\n */export default function FC_ProductVariants(props){const{shopifyProductID,images,behaviorConfigs,style,variants}=props;const{showSingleVariants,selectOutOfStock,filterVariants,action,triggerCart,productPage=true}=behaviorConfigs||{};let{autoSelectFirst}=behaviorConfigs||{};const[product,setProduct]=useState(null);const[shouldValidate,setShouldValidate]=useState(false);const[selectedOptions,setSelectedOptions]=useState({});const[combinations,setCombinations]=useState([]);// Compute the option names this instance actually controls, accounting for\n// \"equals\" vs \"doesn't equal\" variantGroups. For \"doesn't equal\" we must\n// use the complement set (all option names excluding variantTitles).\nconst getIncludedOptionNames=(prod=product,filters=filterVariants)=>{const allNames=(get(prod,\"options\",[])||[]).map(o=>o.name);if(!filters||filters.variantGroups===\"all\")return allNames;const titles=filters.variantTitles||[];return filters.variantGroups===\"equals\"?titles:allNames.filter(name=>!titles.includes(name));};// Filter options based on the filterVariants prop (for quick purchase functionality)\nconst filteredOptions=React.useMemo(()=>{if(!filterVariants||filterVariants.variantGroups===\"all\"){return get(product,\"options\")||[];}if(filterVariants.variantGroups===\"equals\"){return(get(product,\"options\")||[]).filter(opt=>filterVariants.variantTitles?.includes(opt.name));}if(filterVariants.variantGroups===\"doesn't equal\"){return(get(product,\"options\")||[]).filter(opt=>!filterVariants.variantTitles?.includes(opt.name));}return get(product,\"options\")||[];},[product,filterVariants]);// Define environment flags without touching `window` on the server to avoid hydration mismatches\nconst isBrowser=typeof window!==\"undefined\";const isCanvas=!isBrowser?true:!window.shopXtools;const autoSelectRef=useRef(false);// Unique per-instance identifier to avoid cross-talk between multiple selectors\nconst instanceIdRef=useRef(Math.random().toString(36).slice(2));// Track whether we already applied variant from session storage to avoid double-processing\nconst appliedFromStorageRef=useRef(false);// Guard to prevent race conditions while initializing auto-select\nconst isInitializingRef=useRef(false);// Track previous config to detect transitions that should clear caches\nconst prevActionRef=useRef(action);const prevAutoSelectFirstRef=useRef(!!autoSelectFirst);// Token to discard stale async work during initialization\nconst initTokenRef=useRef(0);const hasInitializedRef=useRef(false);const initialScrollPreventedRef=useRef(false)// Prevent initial scroll trigger\n;const[selectedCurrency,setSelectedCurrency]=useState();const[focusedOptionIndex,setFocusedOptionIndex]=useState(-1);const[focusedValueIndex,setFocusedValueIndex]=useState(-1);const containerRef=useRef(null);const[colorHexMap,setColorHexMap]=useState(new Map);useEffect(()=>{if(isInitializingRef.current)return;setSelectedOptions({});autoSelectRef.current=false;},[shopifyProductID]);// Reset guards when filter configuration changes so auto-select can re-run\nuseEffect(()=>{if(isInitializingRef.current)return;setSelectedOptions({});autoSelectRef.current=false;},[filterVariants?.variantGroups,(filterVariants?.variantTitles||[]).join(\"|\")]);// When autoSelectFirst is toggled off, clear any preselection in Canvas and Browser\nuseEffect(()=>{if(!autoSelectFirst){autoSelectRef.current=false;setSelectedOptions({});}},[autoSelectFirst]);const swatchColors=props.colors||[];// Use server-safe defaults during first render; hydrate from `window` after mount\nconst[swatchImages,setSwatchImages]=useState(props.swatchImages||[]);const[colorTitles,setColorTitles]=useState(props.colorTitles||[\"Color\"]);const imageTitles=props.imageTitles||[];const variantImageTitles=props.variantImageTitles||[];// After mount, read from window if available and props did not provide values\nuseEffect(()=>{if(!isBrowser)return;const cfg=window.__FcCheckoutConfigs;if(!props.swatchImages&&Array.isArray(cfg?.variantImageValues)){setSwatchImages(cfg.variantImageValues);}if(!props.colorTitles&&Array.isArray(cfg?.variantColorTitles)){setColorTitles(cfg.variantColorTitles);}},[isBrowser,props.swatchImages,props.colorTitles]);// Standard color fallbacks\nconst standardColorMap=new Map([[\"black\",\"#000000\"],[\"white\",\"#FFFFFF\"],[\"red\",\"#FF0000\"],[\"green\",\"#00FF00\"],[\"blue\",\"#0000FF\"],[\"yellow\",\"#FFFF00\"],[\"purple\",\"#800080\"],[\"orange\",\"#FFA500\"],[\"pink\",\"#FFC0CB\"],[\"brown\",\"#A52A2A\"],[\"gray\",\"#808080\"],[\"grey\",\"#808080\"],[\"navy\",\"#000080\"],[\"teal\",\"#008080\"],[\"maroon\",\"#800000\"],[\"olive\",\"#808000\"],[\"lime\",\"#00FF00\"],[\"aqua\",\"#00FFFF\"],[\"silver\",\"#C0C0C0\"],[\"gold\",\"#FFD700\"],[\"beige\",\"#F5F5DC\"],[\"ivory\",\"#FFFFF0\"],[\"lavender\",\"#E6E6FA\"],[\"mint\",\"#F5FFFA\"],[\"coral\",\"#FF7F50\"],[\"indigo\",\"#4B0082\"],[\"violet\",\"#EE82EE\"],[\"magenta\",\"#FF00FF\"],[\"turquoise\",\"#40E0D0\"],[\"plum\",\"#DDA0DD\"],[\"salmon\",\"#FA8072\"],[\"tan\",\"#D2B48C\"],[\"khaki\",\"#F0E68C\"],[\"azure\",\"#F0FFFF\"],[\"bisque\",\"#FFE4C4\"],[\"chocolate\",\"#D2691E\"],[\"crimson\",\"#DC143C\"],[\"fuchsia\",\"#FF00FF\"],[\"honeydew\",\"#F0FFF0\"],[\"linen\",\"#FAF0E6\"],[\"moccasin\",\"#FFE4B5\"],[\"oldlace\",\"#FDF5E6\"],[\"orchid\",\"#DA70D6\"],[\"papayawhip\",\"#FFEFD5\"],[\"peachpuff\",\"#FFDAB9\"],[\"peru\",\"#CD853F\"],[\"rosybrown\",\"#BC8F8F\"],[\"sandybrown\",\"#F4A460\"],[\"seashell\",\"#FFF5EE\"],[\"sienna\",\"#A0522D\"],[\"skyblue\",\"#87CEEB\"],[\"slateblue\",\"#6A5ACD\"],[\"slategray\",\"#708090\"],[\"slategrey\",\"#708090\"],[\"snow\",\"#FFFAFA\"],[\"springgreen\",\"#00FF7F\"],[\"steelblue\",\"#4682B4\"],[\"thistle\",\"#D8BFD8\"],[\"tomato\",\"#FF6347\"],[\"wheat\",\"#F5DEB3\"],[\"whitesmoke\",\"#F5F5F5\"],[\"yellowgreen\",\"#9ACD32\"]]);useEffect(()=>{const defaultColors=new Map;// First, try to use colors from props if they exist\nif(swatchColors&&swatchColors.length>0){swatchColors.forEach(color=>{if(color.name){// Normalize the color name by trimming and converting to lowercase\nconst normalizedName=color.name.trim().toLowerCase();// Only use standard color as fallback if hex is missing\nconst hex=color.hex||standardColorMap.get(normalizedName);if(hex){defaultColors.set(normalizedName,hex);}}});}else if(typeof window!==\"undefined\"&&window.__FcCheckoutConfigs?.variantColorValues){try{const colors=window.__FcCheckoutConfigs.variantColorValues;if(Array.isArray(colors)){colors.forEach(color=>{if(color.name&&color.hex){defaultColors.set(color.name.toLowerCase(),color.hex);}});}}catch(error){console.error(\"Error parsing color data from window.__FcCheckoutConfigs:\",error);}}setColorHexMap(defaultColors);},[swatchColors,swatchImages,product,colorTitles]);////////////////////////////URL WITH VARIANT PARAMETER HANDLING//////////////////////////////////\n// Helper function to update URL with variant ID (for product pages)\nconst updateUrlWithVariant=useCallback(variantId=>{// console.log(\"updateUrlWithVariant called with:\", {\n//     variantId,\n//     productPage,\n//     windowUndefined: typeof window === \"undefined\",\n//     currentUrl: typeof window !== \"undefined\" ? window.location.href : \"N/A\"\n// })\nif(typeof window!==\"undefined\"&&productPage&&variantId){// Extract just the numeric ID from the full Shopify ID\nconst numericId=variantId.replace(\"gid://shopify/ProductVariant/\",\"\");//console.log(\"Extracted numeric ID:\", numericId)\n// Create new URL with variant parameter\nconst url=new URL(window.location.href);//console.log(\"Current URL before update:\", url.toString())\nurl.searchParams.set(\"variant\",numericId);//console.log(\"New URL with variant:\", url.toString())\n// Update URL without triggering page refresh\nwindow.history.replaceState({},\"\",url.toString());//console.log(\"✅ Successfully updated URL with variant:\", numericId)\nif(typeof window!==\"undefined\"&&product&&shopifyProductID){// First, check for variant ID in URL parameters\nconst urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl){// Find the variant with this ID\nconst matchingVariant=(get(product,\"variants.edges\")||[]).find(({node})=>node.id.endsWith(variantIdFromUrl)||node.id===`gid://shopify/ProductVariant/${variantIdFromUrl}`);if(matchingVariant){const urlOptions={};matchingVariant.node.selectedOptions.forEach(option=>{urlOptions[option.name]=option.value;});setSelectedOptions(urlOptions);//console.log(\"Link: Set variant from URL parameter:\", urlOptions)\n// console.log(\"Link: matchingVariant\", matchingVariant)\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);//console.log(\"Link: allOptions\", allOptions)\nconst allOptionsSelected=allOptions.every(optName=>urlOptions[optName]);// console.log(\n//     \"Link: allOptionsSelected\", allOptionsSelected\n// )\nconst key=`fc_active_variant_${shopifyProductID}`;const savedVariant=sessionStorage.getItem(key);if(!savedVariant){saveVariantToSessionStorage(urlOptions,matchingVariant.node.id,false);//console.log(\"Link: saved variant to sessionStorage from url\", urlOptions)\n}if(allOptionsSelected){// Also dispatch a single event for the active variant\nsetTimeout(()=>{if(__isPurchaseMode(action))return;const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"Link: activeVariantEvent\",\n//     activeVariantEvent.detail\n// )\n},100);}return;// Exit early if we found a URL variant\n}}}}else{// console.log(\"❌ Skipping URL update - conditions not met:\", {\n//     hasWindow: typeof window !== \"undefined\",\n//     productPage,\n//     hasVariantId: !!variantId\n// })\n}},[productPage,product,shopifyProductID]);// Helper function to determine if current page is a product page based on URL\nconst isCurrentPageProductPage=useCallback(()=>{if(typeof window===\"undefined\")return false;try{setTimeout(()=>{const products=window.shopXtools?.products;if(!Array.isArray(products)){return false;}const url=new URL(window.location.href);const pathname=url.pathname;const urlHandle=pathname.split(\"/\").filter(Boolean).pop();if(!urlHandle){return false;}return products.some(({node})=>node.handle===urlHandle);},500);}catch(error){console.error(\"Error determining if current page is product page:\",error);return false;}},[]);// Clean up URL when component mounts on non-product page\nuseEffect(()=>{if(typeof window===\"undefined\"||!window.shopXtools?.products)return;checkAndCleanupUrl();},[]);// Function to clear session storage\nconst clearSessionStorage=useCallback(()=>{if(typeof window===\"undefined\")return;// const isPageProductPage = isCurrentPageProductPage()\n//console.log(\"clearSessionStorage - isPageProductPage\", isPageProductPage)\ntry{if(typeof window===\"undefined\")return;try{for(let i=sessionStorage.length-1;i>=0;i--){const key=sessionStorage.key(i);if(key&&key.startsWith(\"fc_active_variant_\")){sessionStorage.removeItem(key);// console.log(\"Cleared variant from sessionStorage\", key);\n}}}catch(error){console.error(\"Error clearing variant from sessionStorage:\",error);}}catch(error){console.error(\"Error clearing variant from sessionStorage:\",error);}},[shopifyProductID,isCurrentPageProductPage]);// Function to strip variant parameter from URL\nconst stripVariantFromUrl=useCallback(()=>{if(typeof window===\"undefined\"||!selectedOptions)return;try{const url=new URL(window.location.href);const searchParams=url.searchParams;// const isPageProductPage = isCurrentPageProductPage()\n// console.log(\"stripVariantFromUrl - isPageProductPage\", isPageProductPage)\n// Remove variant parameter if it exists\nif(searchParams.has(\"variant\")){searchParams.delete(\"variant\");// Update URL without variant parameter using replaceState\nconst newUrl=url.toString();window.history.replaceState({},\"\",newUrl);// console.log(\"Stripped variant parameter from URL:\", newUrl)\n}else{//console.log(\"Skipping stripping variant from URL - not on product page\", isPageProductPage)\n}}catch(error){console.error(\"Error stripping variant from URL:\",error);}},[shopifyProductID,selectedOptions,isCurrentPageProductPage]);// Function to check and clean up URL if not on valid product page\nconst checkAndCleanupUrl=useCallback(()=>{if(typeof window===\"undefined\"||!window.shopXtools?.products)return;const isValidProductPage=isCurrentPageProductPage();// console.log(\n//     \"isValidProductPage in checkAndCleanupUrl\",\n//     isValidProductPage\n// )\nconst hasVariantParam=new URLSearchParams(window.location.search).has(\"variant\");// console.log(\"has valid param in the url\", hasVariantParam)\nif(isValidProductPage===undefined)return;// if (hasVariantParam && isValidProductPage){\n// }\n// If we have a variant parameter but we're not on a valid product page, clean up\nif(hasVariantParam&&!isValidProductPage){// console.log(\"Cleaning up variant URL - not on valid product page\", isValidProductPage)\nclearSessionStorage();stripVariantFromUrl();setSelectedOptions({});}},[isCurrentPageProductPage,clearSessionStorage,stripVariantFromUrl,selectedOptions]);// Build a namespaced storage key based on product and filter configuration\nconst getVariantStorageKey=useCallback(()=>{const group=filterVariants?.variantGroups||\"all\";const titles=(filterVariants?.variantTitles||[]).join(\"|\")||\"all\";return`fc_active_variant_${shopifyProductID}_${group}__${titles}`;},[shopifyProductID,filterVariants?.variantGroups,filterVariants?.variantTitles]);// Function to save variant selection to session storage\nconst saveVariantToSessionStorage=useCallback((selectedOptions,variantId,isPartial=false)=>{if(typeof window===\"undefined\")return;try{const savedVariantKey=getVariantStorageKey();const variantData={selectedOptions,variantId,timestamp:Date.now(),isPartial};// Write to namespaced key (includes filter config)\nsessionStorage.setItem(savedVariantKey,JSON.stringify(variantData));// Also write to legacy product-only key so other instances with different\n// filter configurations can still restore\nconst legacyKey=`fc_active_variant_${shopifyProductID}`;sessionStorage.setItem(legacyKey,JSON.stringify(variantData));//console.log(\"Saved variant to sessionStorage:\", savedVariantKey, variantData)\n}catch(error){console.error(\"Error saving variant to sessionStorage:\",error);}},[getVariantStorageKey]);// Function to load variant from session storage\nconst loadVariantFromSessionStorage=useCallback(()=>{if(typeof window===\"undefined\")return null;try{const namespacedKey=getVariantStorageKey();let savedData=sessionStorage.getItem(namespacedKey);// Back-compat: fall back to legacy product-only key\nif(!savedData){const legacyKey=`fc_active_variant_${shopifyProductID}`;savedData=sessionStorage.getItem(legacyKey);}// As an additional fallback, search for any saved key for this product regardless\n// of filter configuration and pick the most recent\nif(!savedData){const prefix=`fc_active_variant_${shopifyProductID}_`;let latest=null;for(let i=0;i<sessionStorage.length;i++){const key=sessionStorage.key(i);if(key&&key.startsWith(prefix)){try{const value=sessionStorage.getItem(key);if(!value)continue;const parsed=JSON.parse(value);const ts=parsed?.timestamp||0;if(parsed?.selectedOptions&&(!latest||ts>latest.timestamp)){latest={data:parsed,timestamp:ts};}}catch(_){// ignore malformed entries\n}}}if(latest){savedData=JSON.stringify(latest.data);}}if(savedData){const savedVariantData=JSON.parse(savedData);const timestamp=savedVariantData.timestamp||Date.now();// Only restore if the data is recent (within 24 hours)\nconst isRecent=Date.now()-timestamp<24*60*60*1e3;if(isRecent&&savedVariantData.selectedOptions){// Do not enforce presence of specific option names here; different components\n// may use different filter configurations. We'll filter to product option names\n// later during application.\nreturn savedVariantData;}}}catch(error){console.error(\"Error loading variant from sessionStorage:\",error);}return null;},[shopifyProductID,getVariantStorageKey,filterVariants?.variantGroups,filterVariants?.variantTitles]);// Function to apply variant from session storage to URL (for product pages)\nconst applyVariantFromSessionStorage=useCallback(()=>{if(typeof window===\"undefined\"||!productPage||!product)return;const hasUrlVariant=new URLSearchParams(window.location.search).has(\"variant\");// If the URL already specifies a variant, do NOT apply sessionStorage.\n// The URL must be the source of truth on refresh/navigation.\nif(hasUrlVariant)return false;const savedVariant=loadVariantFromSessionStorage();if(savedVariant?.variantId&&savedVariant?.selectedOptions){// console.log(\"Applying variant from sessionStorage:\", savedVariant)\n// Filter saved options to only those that exist on this product\nconst productOptionNames=(get(product,\"options\",[])||[]).map(opt=>opt.name);const filteredSelectedOptions=Object.fromEntries(Object.entries(savedVariant.selectedOptions).filter(([name])=>productOptionNames.includes(name)));// console.log(\"filteredSelectedOptions\", filteredSelectedOptions)\n// Merge into existing selections so components that auto-selected\n// missing options are not overwritten by storage restore\nsetSelectedOptions(prev=>({...prev||{},...filteredSelectedOptions}));// console.log(\"applyVariantFromSessionStorage - setSelectedOptions\", savedVariant.selectedOptions)\n// Find the matching variant to dispatch events\nconst matchingVariant=(get(product,\"variants.edges\")||[]).find(({node})=>node.id===savedVariant.variantId);if(matchingVariant){// console.log(\"applyVariantFromSessionStorage - matchingVariant\", matchingVariant)\nif(filterVariants?.variantGroups===\"all\"&&autoSelectFirst){const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const options=matchingVariant.node.selectedOptions;const allOptionsSelected=allOptions.every(optName=>options.some(opt=>opt.name===optName&&!!opt.value));if(allOptionsSelected){// console.log(\"updating url with an active variant\", matchingVariant.node)\nupdateUrlWithVariant(matchingVariant.node.id);saveVariantToSessionStorage(matchingVariant.node.selectedOptions,matchingVariant.node.id,false);}}// If this instance has AutoSelectFirst and the group has missing selections,\n// proactively fill them from the matching variant or the first available variant\nconst groupOptionNames=getIncludedOptionNames();const missingInGroup=groupOptionNames.filter(name=>!filteredSelectedOptions[name]);let mergedSelectedOptions={...filteredSelectedOptions};// console.log(\"mergedSelectedOptions\", mergedSelectedOptions)\n// Only backfill missing selections from storage when a URL variant is present.\n// Without a URL variant, keep the restore strictly partial.\nif(hasUrlVariant&&autoSelectFirst&&missingInGroup.length>0){// console.log(\"missingInGroup with autoSelectFirst\", missingInGroup)\nlet chosenSource=matchingVariant.node?.selectedOptions||[];if(!chosenSource.length){const firstAvailable=(get(product,\"variants.edges\",[])||[]).find(({node})=>node.availableForSale);chosenSource=firstAvailable?.node?.selectedOptions||[];}const filled={};chosenSource.forEach(opt=>{if(missingInGroup.includes(opt.name)){filled[opt.name]=opt.value;}});if(Object.keys(filled).length>0){mergedSelectedOptions={...filteredSelectedOptions,...filled};setSelectedOptions(prev=>({...prev||{},...mergedSelectedOptions}));// Dispatch events for newly filled options to sync other components\nsetTimeout(()=>{Object.entries(filled).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:mergedSelectedOptions,isCompleteVariant:false,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);});// Dispatch communication event for other variant selectors to coordinate\nif(filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(filled)[0]||\"\",value:Object.values(filled)[0]||\"\",allSelectedOptions:mergedSelectedOptions,allOptionsSelected:false,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);}},0);}}const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>mergedSelectedOptions[optName]);// console.log(\"allOptionsSelected\", allOptionsSelected)\nsetTimeout(()=>{// Dispatch events for each selected option\nconst isCompleteEffective=hasUrlVariant&&allOptionsSelected;Object.entries(mergedSelectedOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:mergedSelectedOptions,isCompleteVariant:isCompleteEffective,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);// console.log(\"isCompleteEffective\", isCompleteEffective)\n});// Dispatch communication event for other variant selectors to coordinate\nif(filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(mergedSelectedOptions)[0]||\"\",value:Object.values(mergedSelectedOptions)[0]||\"\",allSelectedOptions:mergedSelectedOptions,allOptionsSelected:allOptionsSelected,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);// console.log(\"communicationEvent\", communicationEvent)\n}},100);// Only treat restore as authoritative when a URL variant is present.\nif(hasUrlVariant&&allOptionsSelected){// console.log(\"applyVariantFromSessionStorage - updateUrlWithVariant\", savedVariant.variantId)\nupdateUrlWithVariant(savedVariant.variantId);}setTimeout(()=>{if(__isPurchaseMode(action))return;if(!hasUrlVariant)return;const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\"Applied variant from sessionStorage - dispatched event:\", activeVariantEvent.detail)\n},100);}else if(autoSelectFirst){// console.log(\"applyVariantFromSessionStorage - autoSelectFirst\")\n// No matching variant in this product, but we have partial selections\n// If this component's group has missing selections, fill them from first available variant\nconst productOptionNames=(get(product,\"options\",[])||[]).map(opt=>opt.name);const groupOptionNames=getIncludedOptionNames();const missingInGroup=groupOptionNames.filter(name=>!filteredSelectedOptions[name]);if(missingInGroup.length>0){const firstAvailable=(get(product,\"variants.edges\",[])||[]).find(({node})=>node.availableForSale);const source=firstAvailable?.node?.selectedOptions||[];const filled={};source.forEach(opt=>{if(missingInGroup.includes(opt.name)){filled[opt.name]=opt.value;}});if(Object.keys(filled).length>0){const mergedSelectedOptions={...filteredSelectedOptions,...filled};setSelectedOptions(prev=>({...prev||{},...mergedSelectedOptions}));setTimeout(()=>{Object.entries(filled).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:mergedSelectedOptions,isCompleteVariant:false,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);});// Dispatch communication event for other variant selectors to coordinate\nif(filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(filled)[0]||\"\",value:Object.values(filled)[0]||\"\",allSelectedOptions:mergedSelectedOptions,allOptionsSelected:false,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);}},0);}}}return true;}return false;},[productPage,loadVariantFromSessionStorage,updateUrlWithVariant,product,shopifyProductID]);const restoreVariantFromUrl=useCallback(()=>{// console.log(\"restoreVariantFromUrl - restoring variant from URL\")\nconst url=new URL(window.location.href);const pathname=url.pathname;// Extract potential product handle from URL pathname\nconst urlHandle=pathname.split(\"/\").filter(Boolean).pop();// console.log(\"restoreVariantFromUrl - urlHandle\", urlHandle)\nif(window.shopXtools?.products&&Array.isArray(window.shopXtools.products)&&urlHandle){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.handle===urlHandle);const matchingProductId=matchingProduct?.node.id.split(\"gid://shopify/Product/\")[1];// console.log(\"matchingProductId\", matchingProductId)\n// console.log(\n//     \"restoreVariantFromUrl - matchingProduct\",\n//     matchingProduct\n// )\nif(!matchingProduct){// console.log(\n//     \"restoreVariantFromUrl - no matching product found for the shopifyProductID\"\n// )\nreturn;}const urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl){// Find the variant with this ID\nconst matchingVariant=(get(matchingProduct.node,\"variants.edges\")||[]).find(({node})=>node.id.endsWith(variantIdFromUrl)||node.id===`gid://shopify/ProductVariant/${variantIdFromUrl}`);// console.log(\"restoreVariantFromUrl - matchingVariant\", matchingVariant)\nif(!matchingVariant){// console.log(\n//     \"restoreVariantFromUrl - no matching variant found for the product\"\n// )\nreturn;}if(matchingVariant){// Build selected options from variant\nconst matchingVariantId=matchingVariant.node.id.split(\"gid://shopify/ProductVariant/\")[1];const urlOptions={};matchingVariant.node.selectedOptions.forEach(option=>{urlOptions[option.name]=option.value;});//console.log(\"restoreVariantFromUrl - urlOptions\", urlOptions)\n// Set selected options in state\nsetSelectedOptions(urlOptions);// Optionally, dispatch events here if needed\nconst allOptions=get(matchingProduct,\"options\",[]).map(opt=>opt.name);// console.log(\"Restore URL: allOptions\", allOptions)\nconst allOptionsSelected=allOptions.every(optName=>urlOptions[optName]);// console.log(\n//     \"Restore URL: allOptionsSelected\", allOptionsSelected\n// )\nif(allOptionsSelected){// Save to sessionStorage if not already present\n// saveVariantToSessionStorage(\n//     urlOptions,\n//     matchingVariant.node.id,\n//     false\n// )\nconst savedVariantKey=`fc_active_variant_${matchingProductId}`;if(sessionStorage.getItem(savedVariantKey))return;const variantData={urlOptions,matchingVariantId,timestamp:Date.now(),isPartial:false};sessionStorage.setItem(savedVariantKey,JSON.stringify(variantData));//console.log(\"Saved variant to sessionStorage:\", savedVariantKey, variantData)\n//console.log(\"Restore URL:Saved variant to sessionStorage from URL\", urlOptions)\n// Also dispatch a single event for the active variant\nsetTimeout(()=>{if(__isPurchaseMode(action))return;const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"Restore URL: activeVariantEvent\",\n//     activeVariantEvent.detail\n// )\n},100);}}}}},[product]);// Handle page leave cleanup\n// Refs to access current values in stable handler\nconst productPageRef=useRef(productPage);const productRef=useRef(product);const restoreVariantFromUrlRef=useRef(restoreVariantFromUrl);// Update refs when values change\nuseEffect(()=>{productPageRef.current=productPage;productRef.current=product;restoreVariantFromUrlRef.current=restoreVariantFromUrl;},[productPage,product,restoreVariantFromUrl]);// Comprehensive navigation handler - handles ALL scenarios\nconst handlePopState=useCallback(event=>{const urlParams=new URLSearchParams(window.location.search);const hasVariantInUrl=urlParams.has(\"variant\");const currentPath=window.location.pathname;const urlHandle=currentPath.split(\"/\").filter(Boolean).pop();// Determine if current URL is a product page\nconst isUrlProductPage=window.shopXtools?.products&&Array.isArray(window.shopXtools.products)?window.shopXtools.products.some(({node})=>node.handle===urlHandle):false;// Scenario 1: We're on a product page component AND URL is a product page AND has variant\nif(productPageRef.current&&isUrlProductPage&&hasVariantInUrl){// console.log(\"Scenario 1: We're on a product page component AND URL is a product page AND has variant\")\nevent.stopImmediatePropagation();if(productRef.current){restoreVariantFromUrlRef.current();}return;}// WORKS: Scenario 2: We're on a product page component BUT URL is NOT a product page (forward navigation)\nif(productPageRef.current&&!isUrlProductPage){// console.log(\"Scenario 2: We're on a product page component BUT URL is NOT a product page (forward navigation)\")\nevent.stopImmediatePropagation();window.location.reload();return;}// WORKS: Scenario 3: We're NOT on a product page component BUT URL has variant (back navigation)\nif(!productPageRef.current&&hasVariantInUrl){// console.log(\"Scenario 3: We're NOT on a product page component BUT URL has variant (back navigation)\")\nevent.stopImmediatePropagation();window.location.reload();return;}// WORKS: Scenario 4: We're NOT on a product page component AND URL is a product page but no variant\n// This is navigation TO a product page - let Framer handle it naturally\n// Stop propagation to prevent CatalogDisplay from interfering\nif(!productPageRef.current&&isUrlProductPage&&!hasVariantInUrl){// Normal navigation - stop propagation so CatalogDisplay doesn't interfere\n// console.log(\"Normal navigation - stopping propagation: Scenario 4\")\nevent.stopImmediatePropagation();return;}// Scenario 5: We're on a product page component AND URL is a product page but no variant\n// This could be initial load or variant cleared - let Framer handle\nif(productPageRef.current&&isUrlProductPage&&!hasVariantInUrl){// Normal navigation - do nothing, let Framer handle\n// console.log(\"Normal navigation - do nothing, let Framer handle: Scenario 5\")\nevent.stopImmediatePropagation();return;}},[shopifyProductID]);// Priority navigation handling - takes precedence over global handlers\nuseEffect(()=>{if(typeof window===\"undefined\")return;// Add with capture=true to run before other handlers\nwindow.addEventListener(\"popstate\",handlePopState,true);return()=>{window.removeEventListener(\"popstate\",handlePopState,true);};},[handlePopState,shopifyProductID]);// Apply variant from session storage when component mounts on product page\nuseEffect(()=>{// console.log(\"UseEffect: productPage, product\", productPage, product)\nif(productPage&&!isCanvas&&typeof window!==\"undefined\"&&product){// Small delay to ensure URL is stable and product data is loaded\nconst timer=setTimeout(()=>{const isAppliedFromSessionStorage=applyVariantFromSessionStorage();appliedFromStorageRef.current=!!isAppliedFromSessionStorage;// console.log(\"Applied and saved variant from sessionStorage\", isAppliedFromSessionStorage)\nif(isAppliedFromSessionStorage)return;if(!isAppliedFromSessionStorage){// console.log(\"No variant found in sessionStorage, restoring from URL\")\n// 1. Check for variant in URL\nconst urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl){// Find the variant with this ID\nconst matchingVariant=(get(product,\"variants.edges\")||[]).find(({node})=>node.id.endsWith(variantIdFromUrl)||node.id===`gid://shopify/ProductVariant/${variantIdFromUrl}`);if(matchingVariant){// Build selected options from variant\nconst urlOptions={};matchingVariant.node.selectedOptions.forEach(option=>{urlOptions[option.name]=option.value;});// Set selected options in state\nsetSelectedOptions(urlOptions);// Optionally, dispatch events here if needed\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);// console.log(\"Restore URL: allOptions\", allOptions)\nconst allOptionsSelected=allOptions.every(optName=>urlOptions[optName]);// console.log(\n//     \"Restore URL: allOptionsSelected\", allOptionsSelected\n// )\nif(allOptionsSelected){// Save to sessionStorage if not already present\nsaveVariantToSessionStorage(urlOptions,matchingVariant.node.id,false);//console.log(\"Restore URL:Saved variant to sessionStorage from URL\", urlOptions)\n// Also dispatch a single event for the active variant\nsetTimeout(()=>{const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"Restore URL: activeVariantEvent\",\n//     activeVariantEvent.detail\n// )\n},100);}}}}},100);return()=>clearTimeout(timer);}},[productPage,applyVariantFromSessionStorage,product,shopifyProductID]);// Add global styles for hover effects and accessibility\nuseEffect(()=>{// Create style element if it doesn't exist\nlet styleEl=document.getElementById(\"fc-product-variants-styles\");if(!styleEl){styleEl=document.createElement(\"style\");styleEl.id=\"fc-product-variants-styles\";document.head.appendChild(styleEl);}styleEl.innerHTML=`\n            /* Base z-index for all containers */\n            .variant-button-container, .variant-dropdown-container {\n                z-index: 0;\n                position: relative;\n            }\n            \n            /* Increase z-index on hover */\n            .variant-button-container:hover, .variant-dropdown-container:hover {\n                z-index: 2 !important;\n            }\n            \n            /* Ensure dropdown inner elements inherit hover state */\n            .variant-dropdown-container:hover .dropdown-inner {\n                z-index: 2 !important;\n                position: relative;\n            }\n            \n            /* Ensure dropdown select elements have proper z-index */\n            .dropdown-inner {\n                position: relative;\n                z-index: 0;\n            }\n\n            /* Focus outline via CSS - instant, no React delay */\n            .dropdown-inner {\n                outline: var(--focus-outline-width, 2px) solid transparent;\n                outline-offset: var(--focus-outline-offset, 2px);\n                transition: outline-color 0.15s ease-in-out;\n            }\n            .dropdown-inner:focus-within {\n                outline-color: var(--focus-outline-color, var(--hover-border-color, #000));\n                border-radius: var(--focus-outline-radius, 0px);\n                transition: outline-color 0.15s ease-in-out;\n            }\n\n            /* Remove ALL default focus/active styling from select */\n            .dropdown-inner select,\n            .dropdown-inner select:focus,\n            .dropdown-inner select:focus-visible,\n            .dropdown-inner select:focus-within,\n            .dropdown-inner select:active,\n            .dropdown-inner select:-moz-focusring {\n                outline: none !important;\n                outline-offset: 0 !important;\n                border: none !important;\n                box-shadow: none !important;\n                -webkit-tap-highlight-color: transparent !important;\n                -webkit-appearance: none !important;\n                -moz-appearance: none !important;\n            }\n\n            /* Firefox inner focus ring */\n            .dropdown-inner select::-moz-focus-inner {\n                border: 0 !important;\n                outline: 0 !important;\n            }\n\n            /* Force margin-right for horizontal layout */\n            .variant-dropdown-container[data-horizontal=\"true\"]:not([data-last=\"true\"]) {\n                margin-right: -1px !important;\n            }\n            \n            /* Direct class for horizontal edge-to-edge */\n            .horizontal-edge-to-edge {\n                margin-right: -1px !important;\n            }\n            \n            /* Focus styles for accessibility - buttons only, dropdown uses inline styles */\n            .variant-button-container button:focus-visible {\n                outline: 2px solid #0078D4 !important;\n                outline-offset: 2px !important;\n            }\n            \n            /* High contrast mode support */\n            @media (forced-colors: active) {\n                .variant-button-container button:focus-visible {\n                    outline: 2px solid CanvasText !important;\n                }\n            }\n\n            /* Swatch styles */\n            .variant-swatch-container {\n                position: relative;\n            }\n            \n            .variant-swatch-container:hover {\n                z-index: 10 !important;\n            }\n            \n            .variant-swatch-container:hover .swatch-tooltip {\n                opacity: 1;\n                visibility: visible;\n            }\n            \n            .variant-swatch-container button:focus-visible {\n                outline: 2px solid #0078D4 !important;\n                outline-offset: 2px !important;\n            }\n            \n            /* High contrast mode support */\n            @media (forced-colors: active) {\n                .variant-swatch-container button:focus-visible {\n                    outline: 2px solid CanvasText !important;\n                }\n            }\n        `;},[]);// Force autoSelectFirst to false if action is purchase\nif(__isPurchaseMode(action)){autoSelectFirst=false;}// Dispatch the autoSelectFirst flag on load (scoped with product GID)\nuseEffect(()=>{if(isCanvas)return;const productGid=`gid://shopify/Product/${shopifyProductID}`;const timeoutId=setTimeout(()=>{const hasUrlVariant=typeof window!==\"undefined\"&&new URLSearchParams(window.location.search).has(\"variant\");// Force autoSelectFirst to false if action is purchase\nif(action===\"Add to Cart\"||action===\"Buy Now\"){const autoSelectEvent=new CustomEvent(\"auto_select_first_flag\",{detail:{autoSelectFirst:false,shopifyProductID:productGid,instanceId:instanceIdRef.current}});document.dispatchEvent(autoSelectEvent);//console.log(\"Purchase: dispatching autoSelectFirst as\", { autoSelectFirst: false })\n}else{// On PDP without a URL variant, always broadcast false to prevent eager full selection\nconst effectiveAuto=productPage&&!hasUrlVariant?false:autoSelectFirst;const autoSelectEvent=new CustomEvent(\"auto_select_first_flag\",{detail:{autoSelectFirst:effectiveAuto,shopifyProductID:productGid,instanceId:instanceIdRef.current}});document.dispatchEvent(autoSelectEvent);// console.log(\"Dispatching autoSelectFirst as\", { autoSelectFirst })\n}},100)// Adjust the delay as needed\n;return()=>clearTimeout(timeoutId)// Cleanup timeout on unmount\n;},[autoSelectFirst,action,isCanvas,shopifyProductID]);useEffect(()=>{// Reset autoSelectRef when product changes\n// autoSelectRef.current = false\n// setSelectedOptions({})\n// Create style element if it doesn't exist\nlet styleEl=document.getElementById(\"fc-product-variants-styles\");if(!styleEl){styleEl=document.createElement(\"style\");styleEl.id=\"fc-product-variants-styles\";document.head.appendChild(styleEl);}styleEl.innerHTML=`\n            /* Base z-index for all containers */\n            .variant-dropdown-container {\n                position: relative;\n                z-index: 1;\n            }\n\n            /* Increase z-index when focused */\n            .variant-dropdown-container:focus-within {\n                z-index: 10;\n            }\n\n            /* Remove ALL default focus/active styling from select */\n            .dropdown-inner select,\n            .dropdown-inner select:focus,\n            .dropdown-inner select:focus-visible,\n            .dropdown-inner select:focus-within,\n            .dropdown-inner select:active,\n            .dropdown-inner select:-moz-focusring {\n                outline: none !important;\n                outline-offset: 0 !important;\n                border: none !important;\n                box-shadow: none !important;\n                -webkit-tap-highlight-color: transparent !important;\n                -webkit-appearance: none !important;\n                -moz-appearance: none !important;\n            }\n\n            /* Firefox inner focus ring */\n            .dropdown-inner select::-moz-focus-inner {\n                border: 0 !important;\n                outline: 0 !important;\n            }\n\n            /* Focus outline on dropdown wrapper via CSS variable */\n            .dropdown-inner {\n                outline: var(--focus-outline-width, 2px) solid transparent;\n                outline-offset: var(--focus-outline-offset, 2px);\n                transition: outline-color 0.15s ease-in-out;\n            }\n            .dropdown-inner:focus-within {\n                outline-color: var(--focus-outline-color, var(--hover-border-color, #000));\n                border-radius: var(--focus-outline-radius, 0px);\n                transition: outline-color 0.15s ease-in-out;\n            }\n\n            /* Special styling for edge-to-edge layout */\n            .horizontal-edge-to-edge + .horizontal-edge-to-edge .variant-dropdown {\n                border-left: none !important;\n            }\n\n            .fc-dropdown-focus {\n                outline: 2px solid CanvasText !important;\n                outline-offset: 2px !important;\n            }\n\n            .fc-dropdown-list-item:focus {\n                outline: 2px solid CanvasText !important;\n                outline-offset: -2px !important;\n            }\n        `;// If we're in canvas mode and have variants prop, use that data\nif(isCanvas&&variants){const{options,variants:parsedVariants,productId}=parseOptionsAndVariants(variants);// Create mock product with the parsed data (for canvas preview only)\nconst mockProduct={id:productId||\"mock-product\",options:options.map(opt=>({name:opt.name,values:opt.values})),variants:{edges:parsedVariants.map((variant,index)=>{// Check if preview mode is enabled and this is the second variant of any option group\nlet availableForSale=true;if(props.buttonConfigs?.outOfStock?.preview){// For each option, check if this variant has the second value\noptions.forEach((opt,optIndex)=>{if(opt.values.length>1&&variant.combination[optIndex]===opt.values[1]){availableForSale=false;}});}return{node:{id:variant.id.startsWith(\"gid://\")?variant.id:`gid://shopify/ProductVariant/${variant.id}`,availableForSale:availableForSale,quantityAvailable:availableForSale?50:0,selectedOptions:options.map((opt,index)=>({name:opt.name,value:variant.combination[index]})),price:{amount:\"19.99\",currencyCode:\"USD\"}}};})},images:{edges:Array(4).fill(0).map((_,i)=>({node:{id:`image-${i+1}`}}))},priceRange:{minVariantPrice:{amount:\"19.99\",currencyCode:\"USD\"}}};setProduct(mockProduct);return;}// If we're in canvas mode but no variants prop, use default mock data\nif(isCanvas){const mockProduct={id:\"mock-product\",variants:{edges:[// XS variants\n{node:{id:\"mock-variant-1\",availableForSale:selectOutOfStock||true,quantityAvailable:50,selectedOptions:[{name:\"Size\",value:\"XS\"},{name:\"Color\",value:\"Green\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-2\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"XS\"},{name:\"Color\",value:\"Blue\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-3\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"XS\"},{name:\"Color\",value:\"Pink\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-4\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"XS\"},{name:\"Color\",value:\"Black\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},// S variants (disabled when preview ON - S is 2nd size)\n{node:{id:\"mock-variant-5\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"S\"},{name:\"Color\",value:\"Green\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-6\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"S\"},{name:\"Color\",value:\"Blue\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-7\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"S\"},{name:\"Color\",value:\"Pink\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-8\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"S\"},{name:\"Color\",value:\"Black\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},// M variants\n{node:{id:\"mock-variant-9\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"M\"},{name:\"Color\",value:\"Green\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-10\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"M\"},{name:\"Color\",value:\"Blue\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-11\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"M\"},{name:\"Color\",value:\"Pink\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-12\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"M\"},{name:\"Color\",value:\"Black\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},// L variants\n{node:{id:\"mock-variant-13\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"L\"},{name:\"Color\",value:\"Green\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-14\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"L\"},{name:\"Color\",value:\"Blue\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-15\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"L\"},{name:\"Color\",value:\"Pink\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-16\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"L\"},{name:\"Color\",value:\"Black\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},// XL variants\n{node:{id:\"mock-variant-17\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"XL\"},{name:\"Color\",value:\"Green\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-18\",availableForSale:selectOutOfStock||!props.buttonConfigs?.outOfStock?.preview,selectedOptions:[{name:\"Size\",value:\"XL\"},{name:\"Color\",value:\"Blue\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-19\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"XL\"},{name:\"Color\",value:\"Pink\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}},{node:{id:\"mock-variant-20\",availableForSale:selectOutOfStock||true,selectedOptions:[{name:\"Size\",value:\"XL\"},{name:\"Color\",value:\"Black\"}],price:{amount:\"19.99\",currencyCode:\"USD\"}}}]},options:[{name:\"Size\",values:[\"XS\",\"S\",\"M\",\"L\",\"XL\"]},{name:\"Color\",values:[\"Green\",\"Blue\",\"Pink\",\"Black\"]}],images:{edges:Array(4).fill(0).map((_,i)=>({node:{id:`image-${i+1}`}}))},priceRange:{minVariantPrice:{amount:\"19.99\",currencyCode:\"USD\"}}};setProduct(mockProduct);return;}// If we're not in canvas mode, use the standard product data loading\nif(!isCanvas){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);}}// ALWAYS set up event listener to receive updates (including priority products)\nconst handleProductsReady=e=>{// console.log('Variant Selector received the product', e);\nif(Array.isArray(e.detail.products)){const _matchingProduct=e.detail.products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);}}};document.addEventListener(\"data__products-ready\",handleProductsReady);return()=>{document.removeEventListener(\"data__products-ready\",handleProductsReady);};}document.addEventListener(\"product__variants__validate\",()=>{setShouldValidate(true);});return()=>{document.removeEventListener(\"product__variants__validate\",()=>setShouldValidate(true));};},[shopifyProductID,variants,images.imageChange,props.variantImageIds,props.buttonConfigs?.outOfStock?.preview]);// Handle URL variants when product data becomes available\nuseEffect(()=>{if(!productPage||!product||isCanvas||__isPurchaseMode(action))return;const urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl){// Debug logging to help troubleshoot URL variant processing\n// console.log(`[FC_ProductVariants] Processing URL variant: ${variantIdFromUrl}`, {\n//     productId: shopifyProductID,\n//     productOptions: get(product, \"options\", []).map(opt => opt.name),\n//     variantCount: get(product, \"variants.edges\", []).length,\n//     filterConfig: filterVariants\n// })\n// Find the variant with this ID - use exact matching to avoid partial ID conflicts\nconst matchingVariant=get(product,\"variants.edges\",[]).find(({node})=>{// Try exact full ID match first\nif(node.id===`gid://shopify/ProductVariant/${variantIdFromUrl}`){return true;}// Fallback: extract just the numeric ID from the full Shopify ID and compare\nconst nodeIdNumber=node.id.split(\"/\").pop();return nodeIdNumber===variantIdFromUrl;});// Debug logging to help troubleshoot variant matching\nif(!matchingVariant){console.warn(`[FC_ProductVariants] URL variant ${variantIdFromUrl} not found in product variants:`,{urlVariantId:variantIdFromUrl,availableVariantIds:get(product,\"variants.edges\",[]).map(({node})=>({fullId:node.id,numericId:node.id.split(\"/\").pop()})),productId:shopifyProductID});}if(matchingVariant){const urlOptions={};matchingVariant.node.selectedOptions.forEach(option=>{urlOptions[option.name]=option.value;});setSelectedOptions(urlOptions);// Set autoSelectRef if auto-select is enabled\nif(autoSelectFirst){autoSelectRef.current=true;}// Dispatch events for the URL variant\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>urlOptions[optName]);setTimeout(()=>{// Dispatch events for each selected option\nObject.entries(urlOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:urlOptions,isCompleteVariant:allOptionsSelected,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);});// Dispatch communication event for other variant selectors to coordinate\nif(filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(urlOptions)[0]||\"\",value:Object.values(urlOptions)[0]||\"\",allSelectedOptions:urlOptions,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);}// Dispatch active variant event if complete - RESPECT the URL variant even if out of stock\nif(allOptionsSelected){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\"active variant event sent\", activeVariantEvent)\n}},100);}}},[product,productPage,shopifyProductID,isCanvas,action,autoSelectFirst,filterVariants?.variantGroups,filterVariants?.variantTitles]);// Retry mechanism for URL variants to handle race conditions\nuseEffect(()=>{if(!productPage||isCanvas||__isPurchaseMode(action))return;const urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl&&!product){// If we have a URL variant but no product data yet, retry after a delay\nconst retryTimer=setTimeout(()=>{if(window.location.search.includes(`variant=${variantIdFromUrl}`)){// Force a re-render to trigger the URL variant effect again\nwindow.dispatchEvent(new Event(\"resize\"));}},500);return()=>clearTimeout(retryTimer);}},[product,productPage,shopifyProductID,isCanvas,action]);// On PDP without a URL variant, clear only full selections from storage; keep partials so PLP→PDP can persist\nuseEffect(()=>{if(!productPage)return;if(__isPurchaseMode(action))return;if(typeof window===\"undefined\")return;const urlParams=new URLSearchParams(window.location.search);if(!urlParams.get(\"variant\")){try{const prefixLegacy=`fc_active_variant_${shopifyProductID}`;const prefixScoped=`fc_active_variant_${shopifyProductID}_`;for(let i=sessionStorage.length-1;i>=0;i--){const k=sessionStorage.key(i);if(!k)continue;if(k===prefixLegacy||k.startsWith(prefixScoped)){try{const parsed=JSON.parse(sessionStorage.getItem(k)||\"null\");// Remove only if it represents a full selection\nif(parsed&&parsed.isPartial===false){sessionStorage.removeItem(k);}}catch{// If unreadable, remove to be safe\nsessionStorage.removeItem(k);}}}// Do not clear local selection here; allow hybrid restore of partials\n}catch{}}},[productPage,action,shopifyProductID]);// useEffect to listen for variant selection via selected images\nuseEffect(()=>{if(!product)return;// Listen for image variant selection events\nconst handleImageVariantSelected=e=>{if(!e.detail)return;const variantId=e.detail.variant_id;if(!variantId)return;// console.log(\"Mapping variant to image\", e.detail)\n// Find the variant with this ID\nconst variant=(get(product,\"variants.edges\")||[]).find(({node})=>node.id===variantId);if(variant){// console.log(\"variant\", variant)\n// Determine which option this image should control (prefer configured image titles, then color titles, else first option)\nconst imageOptionNames=[...props.variantImageTitles||[],...props.imageTitles||[],...props.colorTitles||[\"Color\",\"Colour\"]].map(s=>String(s).toLowerCase().trim());// console.log(\"imageOptionNames\", imageOptionNames)\nconst targetOpt=(variant.node.selectedOptions||[]).find(opt=>imageOptionNames.includes(String(opt?.name||\"\").toLowerCase().trim()))||(variant.node.selectedOptions||[])[0];// console.log(\"targetOpt\", targetOpt)\nif(targetOpt?.name&&targetOpt?.value){// Use the central selection flow so partial selection is respected\ndispatchOptionSelectedEvent(targetOpt.name,targetOpt.value);}}};document.addEventListener(\"image__variant__selected\",handleImageVariantSelected);const handleImageNumberSelected=e=>{// console.log(\"Mapping image number to variant\", e.detail)\n// Only process image clicks if imageChange is enabled\nif(!images.imageChange||!e.detail?.imageNumber||!props.variantImageIds){// console.log(\n//     \"[Variants] handleImageNumberSelected: no imageChange or imageNumber or variantImageIds\"\n// )\nreturn;}// Parse the variant-to-image mapping\nconst mapping=new Map;let match;while((match=IMAGE_MAPPING_REGEX.exec(props.variantImageIds))!==null){const[,imageNumber,variantId]=match;// Store mapping both ways for easy lookup\nmapping.set(imageNumber,variantId);mapping.set(variantId,imageNumber);}// Reset regex index for next use\nIMAGE_MAPPING_REGEX.lastIndex=0;// Find the variant ID for this image number\nconst variantId=mapping.get(String(e.detail.imageNumber));// console.log(\"variantId\", variantId)\nif(!variantId)return;// Find the variant with this ID\nconst variant=(get(product,\"variants.edges\")||[]).find(({node})=>node.id.endsWith(variantId));// console.log(\"variant\", variant)\nif(variant){// console.log(\"variant\", variant)\n// console.log(\"autoSelectFirst\", autoSelectFirst)\nif(variant.node.selectedOptions){//autoSelectFirst &&\nconst allSelectedOptions={};for(const option of variant.node.selectedOptions||[]){if(option.name&&option.value){allSelectedOptions[option.name]=option.value;}}//Dispatch individual option selected event\nconst communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,// optionName: name,\n// value,\nallSelectedOptions,//allOptionsSelected: allOptionsSelected,\nisPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current,twoWayGallery:true}});window.dispatchEvent(communicationEvent);// console.log(\n//     \"communicationEvent in two way gallery logic\",\n//     communicationEvent.detail\n// )\n// return\n}// // Determine which option this image should control (prefer configured image titles, then color titles, else first option)\n// const imageOptionNames = [\n//     ...(props.variantImageTitles || []),\n//     ...(props.imageTitles || []),\n//     ...(props.colorTitles || [\"Color\", \"Colour\"]),\n// ].map((s) => String(s).toLowerCase().trim())\n// const targetOpt =\n//     (variant.node.selectedOptions || []).find((opt) =>\n//         imageOptionNames.includes(\n//             String(opt?.name || \"\")\n//                 .toLowerCase()\n//                 .trim()\n//         )\n//     ) || (variant.node.selectedOptions || [])[0]\n// if (targetOpt?.name && targetOpt?.value) {\n//     // console.log(\"targetOpt?.name && targetOpt?.value\", targetOpt?.name, targetOpt?.value)\n//     // Use the central selection flow so partial selection is respected\n//     dispatchOptionSelectedEvent(targetOpt.name, targetOpt.value)\n// }\n}};document.addEventListener(\"image__variant__selected\",handleImageVariantSelected);document.addEventListener(\"image__number__selected\",handleImageNumberSelected);return()=>{document.removeEventListener(\"image__variant__selected\",handleImageVariantSelected);document.removeEventListener(\"image__number__selected\",handleImageNumberSelected);};},[product]);// Canvas-only: when toggling from Purchase to Update Active with Auto Select enabled,\n// clear prior selection and product-scoped cache so auto-select can re-run deterministically\nuseEffect(()=>{if(!isCanvas)return;if(action===\"Update Active\"&&autoSelectFirst){try{const key=`fc_active_variant_${shopifyProductID}`;sessionStorage.removeItem(key);}catch{}setSelectedOptions({});autoSelectRef.current=false;}},[isCanvas,action,autoSelectFirst,shopifyProductID]);// Browser and Canvas: when switching to Update Active or enabling Auto Select 1st,\n// clear product-scoped cache and local selection so auto-select can re-run\nuseEffect(()=>{const switchedToUpdateActive=prevActionRef.current!==\"Update Active\"&&action===\"Update Active\";const enabledAutoSelect=!prevAutoSelectFirstRef.current&&!!autoSelectFirst;if(switchedToUpdateActive||enabledAutoSelect){try{const key=`fc_active_variant_${shopifyProductID}`;sessionStorage.removeItem(key);}catch{}setSelectedOptions({});autoSelectRef.current=false;}prevActionRef.current=action;prevAutoSelectFirstRef.current=!!autoSelectFirst;},[action,autoSelectFirst,shopifyProductID]);// Ref: Reset options when purchase/checkout click is completed\n// const isResettingRef = useRef(false)\nuseEffect(()=>{if(autoSelectFirst&&product&&!autoSelectRef.current&&Object.keys(selectedOptions).length===0){// Skip auto-select if there's already a URL variant - respect user's explicit choice\n// const urlParams = new URLSearchParams(window.location.search)\n// if (urlParams.get(\"variant\") && !isCanvas) {\n//     return\n// }\nconst variants=get(product,\"variants.edges\",[]);// Find first available variant\nconst firstAvailableVariant=variants.find(({node})=>node.availableForSale);const variantKey=`fc_active_variant_${shopifyProductID}`;const savedVariant=isCanvas?null:sessionStorage.getItem(variantKey);// console.log(\"Saved variant to sessionStorage\", savedVariant, variantKey)\nlet initialOptions={};let parsedVariant=null;let isPartial=false;if(!savedVariant&&productPage&&!isCanvas&&product){// console.log(\"No saved variant, parsing url\")\n// console.log(\"product in autoSelectFirst\", product)\nconst urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");// console.log(\"variantIdFromUrl\", variantIdFromUrl)\nparsedVariant=get(product,\"variants.edges\",[]).find(({node})=>node.id===`gid://shopify/ProductVariant/${variantIdFromUrl}`);// console.log(\"parsedVariant, no saved\", parsedVariant)\nif(parsedVariant){parsedVariant.node.selectedOptions.forEach(option=>{initialOptions[option.name]=option.value;});setSelectedOptions(initialOptions);// console.log(\"parsedVariant in autoSelectFirst: initialOptions\", initialOptions)\n}autoSelectRef.current=true;const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>initialOptions[optName]);// console.log(\n//     \"savedVariant : allOptionsSelected\",\n//     allOptionsSelected\n// )\n// Add a small delay to ensure components are ready\nsetTimeout(()=>{// Dispatch events for each selected option\nObject.entries(initialOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:initialOptions,isCompleteVariant:allOptionsSelected,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);// console.log(\n//     \"variant_option_selected event: savedVariant\",\n//     event.detail\n// )\n});if(allOptionsSelected&&!isPartial){// updateUrlWithVariant(fullVariant.node.id)\n// console.log(\"Updating url for autoSelectFirst\")\nsetTimeout(()=>{// Also dispatch a single event for the active variant\nif(action!==\"Add to Cart\"&&action!==\"Buy Now\"){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...parsedVariant?.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"activeVariantEvent in autoSelectFirst\",\n//     activeVariantEvent.detail\n// )\n}},100);// End of initialization\nisInitializingRef.current=false;}},100);}if(savedVariant&&productPage&&!isCanvas&&!appliedFromStorageRef.current){// console.log(\"Saved variant exists, restoring\")\nconst savedVariantId=JSON.parse(savedVariant).variantId;//console.log(\"savedVariantId\", savedVariantId)\nconst variantId=savedVariantId.split(\"gid://shopify/ProductVariant/\")[1];// console.log(\"variantId\", variantId)\n// console.log(\"product\", product)\nparsedVariant=get(product,\"variants.edges\",[]).find(({node})=>node.id===`gid://shopify/ProductVariant/${variantId}`);// console.log(\"parsedVariant\", parsedVariant)\nisPartial=JSON.parse(savedVariant).isPartial;// console.log(\"isPartial\", isPartial)\ninitialOptions=JSON.parse(savedVariant).selectedOptions;// If this component's group has missing selections, fill them\nconst allOptionNames=(get(product,\"options\",[])||[]).map(opt=>opt.name);const groupOptionNames=getIncludedOptionNames();const missingInGroup=groupOptionNames.filter(name=>!initialOptions[name]);if(missingInGroup.length>0){// Helper to pick the first valid combination by declared option value order\nconst optionsList=get(product,\"options\",[])||[];const scopeTitles=getIncludedOptionNames();const pickFirstByOrder=(baseSelections={})=>{const partial={...baseSelections};for(const opt of optionsList){if(!scopeTitles.includes(opt.name))continue;const nextValue=(opt.values||[]).find(value=>{const trial={...partial,[opt.name]:value};return variants.some(({node})=>{if(!node?.availableForSale)return false;return Object.entries(trial).every(([k,v])=>node.selectedOptions?.some(o=>o.name===k&&o.value===v));});});if(!nextValue)return null;partial[opt.name]=nextValue;}return partial;};const fallbackPicked=pickFirstByOrder({});const fallbackSelected=fallbackPicked?Object.entries(fallbackPicked).map(([name,value])=>({name,value})):[];const sourceOptions=parsedVariant?.node?.selectedOptions||fallbackSelected||[];sourceOptions.forEach(option=>{if(missingInGroup.includes(option.name)){initialOptions[option.name]=option.value;}});}setSelectedOptions(initialOptions);// console.log(\"savedVariant in autoSelectFirst: initialOptions\", initialOptions)\nautoSelectRef.current=true;const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>initialOptions[optName]);// console.log(\n//     \"savedVariant : allOptionsSelected\",\n//     allOptionsSelected\n// )\n// Add a small delay to ensure components are ready\nsetTimeout(()=>{// Dispatch events for each selected option\nObject.entries(initialOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:initialOptions,isCompleteVariant:allOptionsSelected,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);// console.log(\n//     \"variant_option_selected event: savedVariant\",\n//     event.detail\n// )\n});// Dispatch communication event for other variant selectors\nif(!isCanvas&&filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(initialOptions)[0],value:Object.values(initialOptions)[0],allSelectedOptions:initialOptions,allOptionsSelected:allOptionsSelected,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:filterVariants?.variantTitles?.[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);}if(allOptionsSelected&&!isPartial){// updateUrlWithVariant(fullVariant.node.id)\nsetTimeout(()=>{// Also dispatch a single event for the active variant\nif(action!==\"Add to Cart\"&&action!==\"Buy Now\"){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...parsedVariant?.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"activeVariantEvent in autoSelectFirst\",\n//     activeVariantEvent.detail\n// )\n}},100);// End of initialization\nisInitializingRef.current=false;}},100);}if(!parsedVariant){//console.log(\"pickFirstByOrder: No saved variant or storage, using autoSelectFirst\", parsedVariant)\n// Prefer declared option order over variant edges order\nconst optionsList=get(product,\"options\",[])||[];const scopeTitles=getIncludedOptionNames();const pickFirstByOrder=(baseSelections={})=>{const partial={...baseSelections};for(const opt of optionsList){if(!scopeTitles.includes(opt.name))continue;const nextValue=(opt.values||[]).find(value=>{const trial={...partial,[opt.name]:value};return variants.some(({node})=>{if(!node?.availableForSale)return false;return Object.entries(trial).every(([k,v])=>node.selectedOptions?.some(o=>o.name===k&&o.value===v));});});if(!nextValue)return null;partial[opt.name]=nextValue;}return partial;};const picked=pickFirstByOrder({});if(picked){initialOptions=picked;}setSelectedOptions(initialOptions);// console.log(\"autoSelectFirst: initialOptions\", initialOptions)\nautoSelectRef.current=true;const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>initialOptions[optName]);// console.log(\n//     \"autoSelectFirst: allOptionsSelected\",\n//     allOptionsSelected\n// )\n// Add a small delay to ensure components are ready\nsetTimeout(()=>{// Dispatch events for each selected option\nObject.entries(initialOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:initialOptions,isCompleteVariant:allOptionsSelected,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);// console.log(\n//     \"variant_option_selected event: autoSelectFirst\",\n//     event.detail\n// )\n});// Dispatch communication event for other variant selectors\nif(!isCanvas&&filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(initialOptions)[0],value:Object.values(initialOptions)[0],allSelectedOptions:initialOptions,allOptionsSelected:allOptionsSelected,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);// console.log(\n//     \"communicationEvent in autoSelectFirst\",\n//     communicationEvent.detail\n// )\n}// console.log(\"isPartial\", isPartial)\nif(allOptionsSelected&&!isPartial){// If we can match a variant for picked options, update URL\nconst matching=variants.find(({node})=>Object.entries(initialOptions).every(([k,v])=>node.selectedOptions?.some(o=>o.name===k&&o.value===v)));// console.log(\"matching\", matching.node)\nif(productPage&&matching?.node?.id){// console.log(\"Updating url for autoSelectFirst\", matching.node)\nupdateUrlWithVariant(matching.node.id);}// setTimeout(() => {\n// Also dispatch a single event for the active variant\nif(action!==\"Add to Cart\"&&action!==\"Buy Now\"){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matching?.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\"active variant event sent\", activeVariantEvent)\n}// End of initialization\nisInitializingRef.current=false;// console.log(\n//     \"activeVariantEvent in autoSelectFirst\",\n//     activeVariantEvent.detail\n// )\n// }, 100)\n}},100);}if(firstAvailableVariant&&!parsedVariant){// console.log(\"No saved variant or storage, using autoSelectFirst\", firstAvailableVariant)\n// If variantGroups is \"all\", set all options\n// Otherwise only set the current group's option\nfirstAvailableVariant.node.selectedOptions.forEach(option=>{if(filterVariants?.variantGroups===\"all\"||// (filterVariants?.variantGroups === \"equals\" &&\nfilterVariants?.variantTitles?.includes(option.name)){initialOptions[option.name]=option.value;}});//console.log(\"autoSelectFirst: firstAvailableVariant\", firstAvailableVariant.node.id)\nsetSelectedOptions(initialOptions);//console.log(\"autoSelectFirst: initialOptions\", initialOptions)\nautoSelectRef.current=true;const allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>initialOptions[optName]);// console.log(\n//     \"autoSelectFirst: allOptionsSelected\",\n//     allOptionsSelected\n// )\n// Add a small delay to ensure components are ready\nsetTimeout(()=>{// Dispatch events for each selected option\nObject.entries(initialOptions).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:initialOptions,isCompleteVariant:allOptionsSelected,isPurchaseAction:false,productId:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(event);// console.log(\n//     \"variant_option_selected event: autoSelectFirst\",\n//     event.detail\n// )\n});// Dispatch communication event for other variant selectors\nif(filterVariants?.variantGroups!==\"all\"){const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName:Object.keys(initialOptions)[0],value:Object.values(initialOptions)[0],allSelectedOptions:initialOptions,allOptionsSelected:allOptionsSelected,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);// console.log(\n//     \"communicationEvent in autoSelectFirst\",\n//     communicationEvent.detail\n// )\n}if(allOptionsSelected&&!isPartial){if(productPage){// console.log(\"updating Url With Variant\", firstAvailableVariant)\nupdateUrlWithVariant(firstAvailableVariant.node.id);}//console.log(\"Updating url for autoSelectFirst\")\n// setTimeout(() => {\n// Also dispatch a single event for the active variant\nif(action!==\"Add to Cart\"&&action!==\"Buy Now\"){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...firstAvailableVariant.node,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\"active variant event sent\", activeVariantEvent)\n}// End of initialization\nisInitializingRef.current=false;// console.log(\n//     \"activeVariantEvent in autoSelectFirst\",\n//     activeVariantEvent.detail\n// )\n// }, 100)\n}},100);}}},[product,autoSelectFirst,shopifyProductID,filterVariants?.variantGroups,(filterVariants?.variantTitles||[]).join(\"|\"),productPage,isCanvas]);const oldSelectionsRef=useRef({});useEffect(()=>{const handleCurrencyChange=event=>{const{currency}=event.detail;setSelectedCurrency(currency);oldSelectionsRef.current={...selectedOptions}// Save current selections\n;if(window[\"shopXtools\"]&&Array.isArray(window[\"shopXtools\"].products)){const _matchingProduct=window[\"shopXtools\"].products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){const newProduct=_matchingProduct.node;setProduct(newProduct);}}};window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[shopifyProductID,selectedOptions]);// New effect: restore selections AFTER product updates via currency selection\nuseEffect(()=>{if(!product)return;const savedSelections=oldSelectionsRef.current;if(!savedSelections||Object.keys(savedSelections).length===0)return;const validSelections={};const newOptions=get(product,\"options\",[]);for(const opt of newOptions){const{name,values}=opt;const selectedValue=savedSelections[name];if(selectedValue&&values.includes(selectedValue)){validSelections[name]=selectedValue;}}setSelectedOptions(validSelections);// Only dispatch events if we have valid selections\nif(Object.keys(validSelections).length>0){const activeVariant=getProductVariant(product,validSelections);// Get all available options for this product\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);// Check if all options have been selected\nconst allOptionsSelected=allOptions.every(optName=>validSelections[optName]);// Dispatch variant option events for each restored selection\nObject.entries(validSelections).forEach(([optionName,value])=>{const event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:validSelections,isCompleteVariant:allOptionsSelected,isPurchaseAction:false}});document.dispatchEvent(event);});// Dispatch active variant event if we have a complete variant\nif(activeVariant&&allOptionsSelected){// Add a small delay to ensure PurchaseButton is ready\nsetTimeout(()=>{if(action!==\"Add to Cart\"&&action!==\"Buy Now\"){const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...activeVariant,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:allOptionsSelected}});document.dispatchEvent(activeVariantEvent);// console.log(\n//     \"activeVariantEvent in currencyChange\",\n//     activeVariantEvent.detail\n// )\n}// Dispatch sync event with fromCurrencyChange flag\nconst syncEvent=new CustomEvent(\"variant__visual__sync\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,selectedOptions:validSelections,variantId:activeVariant?.id}});document.dispatchEvent(syncEvent);},50);}}},[product,shopifyProductID]);const activeVariant=getProductVariant(product,selectedOptions);// listening to changes on the activeVariant image\nconst[previousUrl,setPreviousUrl]=useState(\"\");// Parse variant IDs string into a map of variant IDs to image numbers\nconst parseVariantImageIds=variantIdsString=>{if(!variantIdsString)return new Map;const mapping=new Map;// Find all image markers and their positions\nconst imageMarkers=[];const imageRegex=/\\[Image (\\d+) • (\\d+)\\]/g;let imageMatch;while((imageMatch=imageRegex.exec(variantIdsString))!==null){imageMarkers.push({imageNumber:imageMatch[1],position:imageMatch.index,variantId:imageMatch[2],fullMatch:imageMatch[0]});}// Process each image marker and its associated variants\nfor(let i=0;i<imageMarkers.length;i++){const marker=imageMarkers[i];const nextMarker=imageMarkers[i+1];// Map the main variant ID\nmapping.set(marker.variantId,marker.imageNumber);// Find all standalone variant IDs between this marker and the next one\nconst startPos=marker.position+marker.fullMatch.length;const endPos=nextMarker?nextMarker.position:variantIdsString.length;const segment=variantIdsString.substring(startPos,endPos);// Extract and map all standalone variant IDs in this segment\nconst variantRegex=/\\[(\\d+)\\]/g;let variantMatch;while((variantMatch=variantRegex.exec(segment))!==null){mapping.set(variantMatch[1],marker.imageNumber);}}// console.log(\"Parsed variant to image mapping:\", mapping)\nreturn mapping;};const[orderFieldError,setOrderFieldError]=useState(false);// Remove variant-to-image handling from dispatchOptionSelectedEvent\nconst dispatchOptionSelectedEvent=useCallback((optionName,value)=>{const newSelectedOptions={...selectedOptions,[optionName]:value};setSelectedOptions(newSelectedOptions);// console.log(\"newSelectedOptions\", newSelectedOptions)\n// Get all available options for this product\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);// Check if all options have been selected\nconst allOptionsSelected=allOptions.every(optName=>newSelectedOptions[optName]);// Dispatch communication event for quick purchase functionality\n// ONLY dispatch this event if it's NOT a purchase action\nif(filterVariants?.variantGroups!==\"all\"&&!__isPurchaseMode(action)){// Dispatch individual option selected event\nconst communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,optionName,value,allSelectedOptions:newSelectedOptions,allOptionsSelected:allOptionsSelected,isPurchaseAction:false,autoSelectFirst:autoSelectFirst,senderPriority:getIncludedOptionNames()[0]||\"\",instanceId:instanceIdRef.current}});window.dispatchEvent(communicationEvent);// console.log(\n//     \"communicationEvent in dispatchOptionSelectedEvent\",\n//     communicationEvent.detail\n// )\n}// Dispatch individual option selected event\nconst event=new CustomEvent(\"variant_option_selected\",{detail:{optionName,value,allSelectedOptions:newSelectedOptions,productId:`gid://shopify/Product/${shopifyProductID}`,isPurchaseAction:action===\"Add to Cart\"||action===\"Buy Now\"}});document.dispatchEvent(event);// console.log(\"variant_option_selected event\", event.detail)\n// If this is a purchase action and all options are selected, handle the quick purchase\nif(__isPurchaseMode(action)){const purchaseActiveVariant=getProductVariant(product,newSelectedOptions);if(purchaseActiveVariant&&window.shopXtools){const getLineItem=()=>{const merchandiseId=purchaseActiveVariant?.id||(shopifyProductID?`gid://shopify/ProductVariant/${shopifyProductID}`:null);if(!merchandiseId){throw new Error(\"No valid product variant selected\");}const lineItem={merchandiseId,quantity:1};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 handlePurchase=async()=>{try{//attributes\nconst productSpecificKey=`fc_cart_attributes_${props.shopifyProductID}`;const storedAttributes=sessionStorage.getItem(productSpecificKey);// console.log(\"[CHECK] Stored attributes:\", storedAttributes)\nconst parsedAttrs=storedAttributes?JSON.parse(storedAttributes):{};// console.log(\"[CHECK] parsed attributes:\", parsedAttrs)\nconst configKey=`fc_input_config_${props.shopifyProductID}`;const config=sessionStorage.getItem(configKey);const parsedConfig=config?JSON.parse(config):{};const attrKeyList=Object.keys(parsedConfig);let hasError=false;for(const attrKey of attrKeyList){const config=parsedConfig[attrKey];const savedValue=parsedAttrs[attrKey]||\"\";// 1. Required check\nif(config.required&&(!savedValue||savedValue.trim()===\"\")){window.dispatchEvent(new CustomEvent(\"inputValidationFailed\",{detail:{productId:props.shopifyProductID,key:attrKey}}));// console.log(\"[CHECK] Required field validation failed:\", {\n//     productId: props.shopifyProductID,\n//     key: attrKey,\n// })\nhasError=true;continue;// No need to check email if required failed\n}// 2. Email validation (only if value is not empty)\nif(config.validateEmail&&savedValue&&savedValue.trim()!==\"\"){const validateEmail=email=>{if(!email||!email.includes(\"@\")||!email.includes(\".\"))return false;if(email.length>254)return false;const[localPart,domain]=email.split(\"@\");if(localPart.length>64)return false;const emailPattern=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;return emailPattern.test(email);};if(!validateEmail(savedValue)){// console.log(\"[CHECK] Email validation failed:\", {\n//     productId: props.shopifyProductID,\n//     key: attrKey,\n//     savedValue,\n//     config,\n// })\nhasError=true;}}}if(hasError){setOrderFieldError(true);return;}const lines=[getLineItem()];const countryCode=localStorage.getItem(\"selectedCountryCode\")||undefined;if(action===\"Add to Cart\"){// Add to cart\nconst existingCartId=localStorage.getItem(\"shopX_cart_id\");// console.log(\"existingCartId\", existingCartId)\nif(!existingCartId){const createResult=await window.shopXtools?.handleCartMutation?.(createCartMutation,{lines,countryCode});if(createResult?.cartCreate?.cart){localStorage.setItem(\"shopX_cart_id\",createResult.cartCreate.cart.id);localStorage.setItem(\"shopXtools.cart\",JSON.stringify(createResult.cartCreate.cart));if(window.shopXtools){window.shopXtools.cart=createResult.cartCreate.cart;}// Dispatch event after updating the cart\nwindow.dispatchEvent(new Event(\"shopXtools-cart-update\"));// Open cart if triggerCart is true\nif(triggerCart){// Notify host site\nwindow.shopXtools?.dispatchEvent?.(\"checkout__changed\",{__triggerCartModal:triggerCart});// Notify Framer components listening on document\ndocument.dispatchEvent(new CustomEvent(\"checkout__changed\",{detail:{__triggerCartModal:triggerCart}}));}// console.log(\n//     \"New cart created, triggering the cart: dispatching checkout__changed\",\n//     onClickAction?.triggerCart\n// )\n}}else{const addResult=await window.shopXtools?.handleCartMutation?.(addToCartMutation,{cartId:existingCartId,lines});// console.log(\"addResult\", addResult)\nif(addResult?.cartLinesAdd?.cart){// console.log(\"addResult.cartLinesAdd.cart\", addResult.cartLinesAdd.cart)\nlocalStorage.setItem(\"shopXtools.cart\",JSON.stringify(addResult.cartLinesAdd.cart));if(window.shopXtools){window.shopXtools.cart=addResult.cartLinesAdd.cart;}// Dispatch event after updating the cart\nwindow.dispatchEvent(new Event(\"shopXtools-cart-update\"));// Google Analytics tracking\nconst currency=purchaseActiveVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(purchaseActiveVariant?.price?.amount||\"0\")*1).toFixed(2));const item_id=purchaseActiveVariant?.id;const item_name=purchaseActiveVariant?.selectedOptions?.map(opt=>opt.value).join(\" / \")||\"\";const price=parseFloat(purchaseActiveVariant?.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: 1\n//     }]\n// });\nwindow.fcTrackGAEvent(\"add_to_cart\",{currency,value,items:[{item_id,item_name,price,quantity:1}]});}// Meta Pixel tracking\ntrackFacebookPixelAddToCart({variant:purchaseActiveVariant,product:activeProduct,quantity:1,currency:currency});// Open cart if triggerCart is true\nif(action===\"Add to Cart\"&&triggerCart){// Notify host site\nwindow.shopXtools?.dispatchEvent?.(\"checkout__changed\",{__triggerCartModal:triggerCart});// Notify Framer components listening on document\ndocument.dispatchEvent(new CustomEvent(\"checkout__changed\",{detail:{__triggerCartModal:triggerCart}}));// console.log(\"Adding new item, triggering the cart: dispatching checkout__changed\", triggerCart)\n}clearSessionStorage();stripVariantFromUrl();// console.log(\"sessionStorage cleared and url stripped after quick purchase\")\n}}}else{// Buy Now\nconst buyResult=await window.shopXtools?.handleCartMutation?.(createCartMutation,{lines,countryCode});if(buyResult?.cartCreate?.cart?.checkoutUrl){let checkoutUrl=buyResult.cartCreate.cart.checkoutUrl;// Analytics\nconst currency=purchaseActiveVariant?.price?.currencyCode||\"USD\";const value=parseFloat((parseFloat(purchaseActiveVariant?.price?.amount||\"0\")*1).toFixed(2));const item_id=purchaseActiveVariant?.id;const item_name=purchaseActiveVariant?.selectedOptions?.map(opt=>opt.value).join(\" / \")||\"\";const price=parseFloat(purchaseActiveVariant?.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: 1\n// });\nwindow.fcTrackGAEvent(\"begin_checkout\",{currency,value,items:[{item_id,item_name,price,quantity:1}]});}// Meta Pixel tracking\ntrackFacebookPixelInitiateCheckout({variant:purchaseActiveVariant,product:product,quantity:1,currency:currency,useBeacon:true});// Add tracking and language params\ncheckoutUrl=appendAllTrackingParamsToUrl(checkoutUrl);checkoutUrl=appendLanguageToUrl(checkoutUrl);window.location.assign(checkoutUrl);}}}catch(error){console.error(\"Error handling purchase:\",error);window.dispatchEvent(new CustomEvent(\"errorChanged\",{detail:error.message||\"Error processing your request\"}));}};handlePurchase();// Dispatch the event with the purchased variant to use it to remember the matching image for the variant after reset\nwindow.dispatchEvent(new CustomEvent(\"product__purchase__completed\",{detail:{shopifyProductID,activeVariant:purchaseActiveVariant,optionName,value}}));//console.log(\"dispatching product__purchase__completed\")\n}}// Compute current active variant from selections\nconst activeVariant=getProductVariant(product,newSelectedOptions);// console.log(\"activeVariant\", activeVariant)\n// Only dispatch active-variant updates for non-purchase actions\n// if (!__isPurchaseMode(action)) {\n//     if (activeVariant) {\n//         // For partial selections, override selectedOptions in the payload\n//         const partialSelectedArray = Object.entries(\n//             newSelectedOptions\n//         ).map(([name, value]) => ({ name, value }))\n//         const activeVariantEvent = new CustomEvent(\n//             \"product__active-variant__changed\",\n//             {\n//                 detail: {\n//                     ...(activeVariant || {}),\n//                     selectedOptions: allOptionsSelected\n//                         ? activeVariant?.selectedOptions || []\n//                         : partialSelectedArray,\n//                     productId: `gid://shopify/Product/${shopifyProductID}`,\n//                     isCompleteVariant: allOptionsSelected,\n//                     onClickAction: action,\n//                 },\n//             }\n//         )\n//         document.dispatchEvent(activeVariantEvent)\n//         console.log(\"activeVariantEvent in dispatchOptionSelectedEvent\", activeVariantEvent.detail)\n//     }\n// }\n// Always dispatch event for visual sync when it is only one variant selector\nconst syncEvent=new CustomEvent(\"variant__visual__sync\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,selectedOptions:newSelectedOptions,variantId:activeVariant?.id}});document.dispatchEvent(syncEvent);// Handle session storage and URL updates based on productPage prop\nif(activeVariant){if(productPage&&allOptionsSelected){// On product page: update URL with variant ID\n// console.log(\"updating Url With Variant\", activeVariant)\nupdateUrlWithVariant(activeVariant.id);saveVariantToSessionStorage(newSelectedOptions,activeVariant.id,!allOptionsSelected);}else{// On listing page: save to session storage\nsaveVariantToSessionStorage(newSelectedOptions,activeVariant.id,!allOptionsSelected);}// BACK UP EVENT: Always dispatch product__active-variant__changed event\n// when we have a complete variant to allow all components receive it with a delay\nif(allOptionsSelected&&!__isPurchaseMode(action)){setTimeout(()=>{const activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...activeVariant,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:true,isPurchaseAction:false}});document.dispatchEvent(activeVariantEvent);// console.log(\"activeVariantEvent in dispatchOptionSelectedEvent\", activeVariantEvent.detail)\n},300);}}},[selectedOptions,product,shopifyProductID,autoSelectFirst,autoSelectRef.current,filterVariants?.variantGroups,productPage,updateUrlWithVariant,saveVariantToSessionStorage]);// Reset options when purchase/checkout click is completed\nuseEffect(()=>{const handlePurchaseCompleted=e=>{// console.log(\"handlePurchaseCompleted\", e.detail)\nif(e.detail.shopifyProductID!==shopifyProductID){return;}if(action===\"Add to Cart\"||action===\"Buy Now\"&&filterVariants?.variantTitles?.length){const activeVariant=e.detail.activeVariant;// isResettingRef.current = true\nconst optionName=e.detail.optionName;const optionValue=e.detail.value;const optionToReset={[optionName]:optionValue};//console.log(\"optionToReset\", optionToReset)\nconst newOptions=(activeVariant?.selectedOptions||[]).filter(opt=>!(opt.name in optionToReset));//console.log(\"newOptions\", newOptions)\nconst rememberedOptions={};for(const opt of newOptions){rememberedOptions[opt.name]=opt.value;}setSelectedOptions(rememberedOptions);// isResettingRef.current = false\n// console.log(\n//     \"options to remember in handlePurchaseCompleted\",\n//     rememberedOptions\n// )\n//autoSelectRef.current = false;\n// Dispatch communication event after reset\nsetTimeout(()=>{if(activeVariant){// Send the last complete variant to use it to remember the matching image for the variant after reset\ndocument.dispatchEvent(new CustomEvent(\"last_selected_variant\",{detail:{activeVariant,shopifyProductID}}));// console.log(\n//     \"last_selected_variant dispatching\",\n//     activeVariant\n// )\n}const communicationEvent=new CustomEvent(\"__variant_option_selected\",{detail:{productId:`gid://shopify/Product/${shopifyProductID}`,value:null,allSelectedOptions:rememberedOptions,allOptionsSelected:false,isPurchaseAction:true,autoSelectFirst:false}});window.dispatchEvent(communicationEvent);// console.log(\n//     \"Dispatched reset communication event:\",\n//     communicationEvent.detail\n// )\n},200);}};window.addEventListener(\"product__purchase__completed\",handlePurchaseCompleted);return()=>window.removeEventListener(\"product__purchase__completed\",handlePurchaseCompleted);},[product,action,filterVariants?.variantTitles,shopifyProductID,selectedOptions]);// Add a new effect to listen for sync events between the two identical variant selectors\nuseEffect(()=>{if(isCanvas)return;const handleVisualSync=e=>{// Only sync if it's for the same product, not from a currency change, and if variantGroups is \"all\", meaning there is only one variant selector\nif(e.detail.productId===`gid://shopify/Product/${shopifyProductID}`&&filterVariants?.variantGroups===\"all\"){// Only update when a valid selectedOptions payload is provided\nif(e.detail&&typeof e.detail.selectedOptions===\"object\"&&e.detail.selectedOptions!==null){setSelectedOptions(e.detail.selectedOptions);}//console.log(\"handleVisualSync\", e.detail)\n}};document.addEventListener(\"variant__visual__sync\",handleVisualSync);return()=>{document.removeEventListener(\"variant__visual__sync\",handleVisualSync);};},[shopifyProductID,isCanvas])//props.behaviorConfigs.action\n;// Ref: Last purchased variant to use it after options reset for image mapping\nconst eventVariantRef=useRef(null);const eventVariantFreshRef=useRef(false);// An effect to listen for the last purchased variant to use it after options reset for image mapping\nuseEffect(()=>{const handleVariant=e=>{// console.log(\n//     \"shopifyProductID, e.detail.shopifyProductID\",\n//     shopifyProductID,\n//     e.detail.shopifyProductID\n// )\nif(shopifyProductID===e.detail.shopifyProductID){//console.log(\"handleVariant\", e.detail)\neventVariantRef.current=e.detail.activeVariant;eventVariantFreshRef.current=true;}};document.addEventListener(\"last_selected_variant\",handleVariant);return()=>{document.removeEventListener(\"last_selected_variant\",handleVariant);};},[shopifyProductID]);// Consolidate all variant-to-image handling here\nuseEffect(()=>{// console.log(\"[Image mapping:] useEffect running\", { activeVariant, selectedOptions });\nlet variantToShow;// If the quick purchase was triggered, use the last purchased variant to show the matching image\n// or the active variant if it is simply a selection change\nif(eventVariantFreshRef.current&&eventVariantRef.current){variantToShow=eventVariantRef.current;// console.log(\n//     \"Image mapping: eventVariantRef.current\",\n//     eventVariantRef.current\n// )\n// console.log(\n//     \"Image mapping: eventVariantFreshRef.current\",\n//     eventVariantFreshRef.current\n// )\n}else{variantToShow=activeVariant;// console.log(\"Image mapping: activeVariant\", activeVariant)\n}// console.log(\"Image mapping: variantToShow\", variantToShow)\nif(variantToShow){const variantId=variantToShow?.id.split(\"/\").pop();if(props.variantImageIds){const variantMapping=parseVariantImageIds(props.variantImageIds);// console.log(\"Image mapping: variantMapping\", variantMapping)\nconst matchingImageNumber=variantMapping.get(variantId);// console.log(\n//     \"Image mapping: matchingImageNumber\",\n//     matchingImageNumber\n// )\n// Only dispatch events if we have a matching image number\nif(matchingImageNumber){// Use a single setTimeout to handle all events\nconst timeoutId=setTimeout(()=>{// Only dispatch variant__image__match if imageTrigger is not None\nif(images.imageTrigger!==\"None\"){const tapEvent=new CustomEvent(\"variant__image__match\",{detail:{imageNumber:parseInt(matchingImageNumber),shopifyProductID:`gid://shopify/Product/${shopifyProductID}`}});document.dispatchEvent(tapEvent);// console.log(\n//     \"Image mapping: variant__image__match dispatching\",\n//     tapEvent.detail\n// )\n}// Only handle Scroll Sections if that's the specific trigger type\nif(images.imageTrigger===\"Scroll Sections\"){// Prevent initial scroll trigger if auto-select first is enabled\n// and this is the first time we're triggering\nif(autoSelectFirst&&!initialScrollPreventedRef.current){initialScrollPreventedRef.current=true;return;// Skip the scroll trigger on first auto-select\n}const newHash=`#image-${matchingImageNumber}`;if(window.location.hash!==newHash){history.replaceState(null,\"\",newHash);const element=document.getElementById(`image-${matchingImageNumber}`);if(element){const headerOffset=images.offsetY||0;const elementPosition=element.getBoundingClientRect().top;const offsetPosition=elementPosition+window.pageYOffset-headerOffset;window.scrollTo({top:offsetPosition,behavior:\"smooth\"});}}}},0);// Reset the event variant ref to null to allow the next quick purchase\n// to use the active variant and not the last purchased variant\neventVariantFreshRef.current=false;eventVariantRef.current=null;// console.log(\"eventVariantFreshRef.current is false\")\n// console.log(\"eventVariantRef.current is null\")\n// Cleanup timeout on unmount or before next effect\nreturn()=>clearTimeout(timeoutId);}}}},[activeVariant,images.imageTrigger,images.offsetY,props.variantImageIds,selectedOptions]);let variantsTest=get(product,\"variants.edges\");useEffect(()=>{const allCombinations=(get(product,\"variants.edges\")||[]).map(({node:variant})=>({id:variant.id,availableForSale:variant.availableForSale,// Adds key / value pairs for each variant (ie. \"color\": \"Black\" and \"size\": 'M').\n    ...variant.selectedOptions.reduce((accumulator,option)=>({...accumulator,[option.name]:option.value}),{})}));//console.log(\"all Combinations\", allCombinations)\nsetCombinations(allCombinations);},[product]);// An effect to listen for the communication event between the variant selectors (for the quick purchase functionality and else)\nuseEffect(()=>{const handleCommunication=e=>{// console.log(\"handleCommunication e\", e.detail)\n// Ignore cross-instance sync while initializing auto-select to prevent races\nif(isInitializingRef.current)return;const productGid=`gid://shopify/Product/${shopifyProductID}`;const incomingOptions=e.detail.allSelectedOptions;if(e.detail.productId===productGid&&filterVariants?.variantGroups!==\"all\"&&e.detail.instanceId!==instanceIdRef.current&&!e.detail.twoWayGallery){// Always process events for image updates, but control state changes based on purchase action\nconst isPurchaseAction=e.detail.isPurchaseAction;const senderPriority=e.detail.senderPriority||0;const currentPriority=getIncludedOptionNames()[0]||\"\";// console.log(\"Priority check:\", {\n//     senderPriority,\n//     currentPriority,\n//     incomingOptions,\n// })\n// If the sender is a higher-priority selector (e.g., Color), reset lower-priority options\nif(senderPriority===currentPriority){// Keep only the options relevant to this selector and above\n// For example, if this is the Color selector, keep only Color\nconst newSelection={};const included=getIncludedOptionNames();included.forEach(title=>{if(incomingOptions[title]){newSelection[title]=incomingOptions[title];}});// Always update local state for image updates, even for purchase actions\nsetSelectedOptions(newSelection);// console.log(\n//     \"selectedOptions in handleCommunication (replaced)\",\n//     newSelection\n// )\nreturn;}else{// If the event is for a lower-priority option (e.g., Size), merge it with the current selection.\n// Always update local state for image updates, even for purchase actions\n// setSelectedOptions((prev) => ({\n//     ...prev,\n//     ...incomingOptions,\n// }))\n// console.log(\n//     \"selectedOptions in handleCommunication (merged)\",\n//     { prev: selectedOptions, incoming: incomingOptions }\n// )\n// Get the merged options for variant matching (always process for image updates)\nconst merged={...selectedOptions,...incomingOptions};setSelectedOptions(merged);const matchingVariant=getProductVariant(product,merged);// console.log(\"matchingVariant\", matchingVariant)\n// console.log(\"merged\", merged)\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>merged[optName]);// console.log(\"allOptionsSelected\", allOptionsSelected)\nif(allOptionsSelected&&matchingVariant){if(productPage&&!isPurchaseAction){// console.log(\"updating Url With Variant\", matchingVariant)\nupdateUrlWithVariant(matchingVariant.id);}// Always dispatch variant change event for image updates, even for purchase actions\nconst activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:true,isPurchaseAction:false}});document.dispatchEvent(activeVariantEvent);// console.log(\"active variant event sent\", activeVariantEvent)\n}}}else if(e.detail.productId===productGid&&e.detail.twoWayGallery){// console.log(\"Handling gallery\")\nconst merged={...selectedOptions,...incomingOptions};setSelectedOptions(merged);const matchingVariant=getProductVariant(product,merged);// console.log(\"matchingVariant\", matchingVariant)\n// console.log(\"merged\", merged)\nconst allOptions=get(product,\"options\",[]).map(opt=>opt.name);const allOptionsSelected=allOptions.every(optName=>merged[optName]);// console.log(\"allOptionsSelected\", allOptionsSelected)\nif(allOptionsSelected&&matchingVariant){if(productPage){// console.log(\"updating Url With Variant\", matchingVariant)\nupdateUrlWithVariant(matchingVariant.id);}// Always dispatch variant change event for image updates, even for purchase actions\nconst activeVariantEvent=new CustomEvent(\"product__active-variant__changed\",{detail:{...matchingVariant,productId:`gid://shopify/Product/${shopifyProductID}`,isCompleteVariant:true,isPurchaseAction:false}});document.dispatchEvent(activeVariantEvent);// console.log(\"active variant event sent\", activeVariantEvent)\n}}};window.addEventListener(\"__variant_option_selected\",handleCommunication);return()=>{window.removeEventListener(\"__variant_option_selected\",handleCommunication);};},[shopifyProductID,combinations,autoSelectFirst,action,product,selectedOptions,filterVariants?.variantTitles,productPage]);const renderVariantDropdown=(opt,filteredValues,isLast,valid,invalidMsg,props,dispatchOptionSelectedEvent,selectedOptions,combinations,index,totalCount)=>{return /*#__PURE__*/_jsx(VariantDropdown,{opt:opt,filteredValues:filteredValues,isLast:isLast,valid:valid,invalidMsg:invalidMsg,props:props,dispatchOptionSelectedEvent:dispatchOptionSelectedEvent,selectedOptions:selectedOptions,combinations:combinations,index:index,totalCount:totalCount});};const renderVariantButtons=(opt,filteredValues,isLast,valid,invalidMsg)=>{return /*#__PURE__*/_jsxs(\"div\",{role:\"radiogroup\",\"aria-label\":`Select ${opt.name}`,\"aria-required\":!valid,\"aria-invalid\":!valid,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:props.titleConfigs.visible||props.selectedConfigs.visible?\"flex\":\"none\",justifyContent:props.titleConfigs.font.textAlign===\"center\"?\"center\":props.titleConfigs.font.textAlign===\"right\"?\"flex-end\":\"flex-start\",marginBottom:get(props,\"containerConfigs.gap2\")!==undefined?get(props,\"containerConfigs.gap2\"):get(props,\"titleConfigs.gap\"),overflow:\"visible\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",overflow:\"visible\"},children:[props.titleConfigs.visible&&/*#__PURE__*/_jsx(\"label\",{id:`variant-title-${opt.name}`,htmlFor:`variant-${opt.name}`,style:{...get(props,\"titleConfigs.font\"),color:get(props,\"titleConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",margin:0,cursor:\"pointer\",textTransform:get(props,\"titleConfigs.textTransform\",\"None\").toLowerCase()},children:(props.titleConfigs.display||\"{{Option}}\").replace(\"{{Option}}\",opt.name)}),props.selectedConfigs.visible&&selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:selectedOptions[opt.name]}),props.selectedConfigs.visible&&props.selectedConfigs.emptyVisible&&!selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:(props.selectedConfigs.emptyText||\"Select {{Option Value}}\").replace(\"{{Option Value}}\",opt.name)})]})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:props.buttonConfigs.layout===\"grid\"?\"grid\":\"flex\",flexDirection:props.buttonConfigs.layout===\"grid\"?undefined:props.buttonConfigs.direction===\"horizontal\"?\"row\":\"column\",flexWrap:props.buttonConfigs.layout===\"grid\"?undefined:props.buttonConfigs.direction===\"horizontal\"?\"wrap\":\"nowrap\",gridTemplateColumns:props.buttonConfigs.layout===\"grid\"?props.buttonConfigs.columns===\"auto\"?(()=>{const maxCols=props.buttonConfigs.maxColumns||4;const gapX=props.buttonConfigs.gap||8;const minWidth=props.buttonConfigs.gridWidth||100;if(maxCols<=1)return\"1fr\";return`repeat(auto-fit, minmax(max(${minWidth}px, calc((100% - ${maxCols-1} * ${gapX}px) / ${maxCols})), 1fr))`;})():filteredValues.length<=1?\"1fr\":`repeat(${props.buttonConfigs.columnCount||3}, 1fr)`:undefined,gap:props.buttonConfigs.layout===\"grid\"?`${props.buttonConfigs.gapY||8}px ${props.buttonConfigs.gap||8}px`:`${props.buttonConfigs.gapY||8}px ${props.buttonConfigs.gap||8}px`,width:\"100%\",maxWidth:undefined,alignItems:props.buttonConfigs.layout===\"grid\"?undefined:props.buttonConfigs.direction===\"vertical\"&&props.buttonConfigs.width?\"stretch\":\"flex-start\"},children:[filteredValues.map((v,i)=>{const isActive=selectedOptions[opt.name]===v;// console.log(\"isActive (button)\", isActive, selectedOptions[opt.name], v)\nlet isAvailableForSale;if(filterVariants?.variantGroups===\"all\"){const filtered=Array.from(Object.entries({...selectedOptions,[opt.name]:v}));isAvailableForSale=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value)&&combination.availableForSale);// console.log(\"isAvailableForSale\", isAvailableForSale)\n}else{// Handle both update and purchase actions; honor all other current selections\nconst availableValues=Array.from(new Set(combinations.filter(comb=>{if(!comb.availableForSale)return false;const otherSelected=Object.entries(selectedOptions).filter(([key])=>key!==opt.name);return otherSelected.every(([key,value])=>comb[key]===value);}).map(comb=>comb[opt.name]).filter(Boolean)));isAvailableForSale=availableValues.includes(v);// console.log(\"isAvailableForSale\", isAvailableForSale)\n}const canSelect=isAvailableForSale||selectOutOfStock&&!isAvailableForSale;//console.log(\"canSelect\", canSelect)\n// Edge to edge styling - only apply when gap is 0\nconst isLastItem=i===filteredValues.length-1;const gap=Number(props.buttonConfigs.gap);const applyEdgeToEdge=gap===0;const isHorizontal=props.buttonConfigs.direction===\"horizontal\";// Get borders without modification\nconst borderUnselected=get(props,\"buttonConfigs.unselected.border\");const borderSelected=get(props,\"buttonConfigs.selected.border\");const borderDisabled=get(props,\"buttonConfigs.outOfStock.border\");const borderHovered=get(props,\"buttonConfigs.hovered.border\");// Helper to get border style string for each config\nfunction getBorderStyle(borderConfig){if(!borderConfig){// console.log('getBorderStyle: borderConfig is undefined/null');\nreturn undefined;}const{borderWidth,borderStyle,borderColor,isMixed,toggleTitles,top,right,bottom,left}=borderConfig;const isIndividual=toggleTitles===\"Individual\"||isMixed;if(isIndividual){// Use only per-side keys for this state\nreturn{borderTop:`${top??0}px ${borderStyle??\"solid\"} ${borderColor??\"#000\"}`,borderRight:`${right??0}px ${borderStyle??\"solid\"} ${borderColor??\"#000\"}`,borderBottom:`${bottom??0}px ${borderStyle??\"solid\"} ${borderColor??\"#000\"}`,borderLeft:`${left??0}px ${borderStyle??\"solid\"} ${borderColor??\"#000\"}`};}else{// All sides\nconst width=borderWidth?.all??borderWidth??0;return{border:`${width}px ${borderStyle??\"solid\"} ${borderColor??\"#000\"}`};}}// Calculate margin style for edge-to-edge effect\nconst marginStyle={};if(applyEdgeToEdge&&!isLastItem){if(isHorizontal){// For horizontal layout, use negative right margin only\nmarginStyle.marginRight=\"-1px\";}else{// For vertical layout, use negative bottom margin\nmarginStyle.marginBottom=\"-1px\";}}return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:props.buttonConfigs.layout===\"grid\"?\"100%\":\"auto\"},className:\"variant-button-container\",children:/*#__PURE__*/_jsxs(\"button\",{role:\"radio\",\"aria-checked\":isActive,\"aria-label\":`${opt.name} ${v}`,tabIndex:canSelect?0:-1,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();if(canSelect){dispatchOptionSelectedEvent(opt.name,v);}}else if(e.key===\"Home\"){e.preventDefault();// Navigate to first available button in this radiogroup\nconst radiogroup=e.target.closest('[role=\"radiogroup\"]');const firstAvailable=radiogroup?.querySelector('[role=\"radio\"]:not([aria-disabled=\"true\"])');if(firstAvailable)firstAvailable.focus();}else if(e.key===\"End\"){e.preventDefault();// Navigate to last available button in this radiogroup\nconst radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=radiogroup?.querySelectorAll('[role=\"radio\"]:not([aria-disabled=\"true\"])');if(availableButtons?.length){availableButtons[availableButtons.length-1].focus();}}else if(e.key===\"ArrowRight\"||e.key===\"ArrowDown\"&&props.buttonConfigs.direction===\"vertical\"){e.preventDefault();// Find next available button, wrapping to beginning if needed\nconst radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=Array.from(radiogroup?.querySelectorAll('[role=\"radio\"]:not([aria-disabled=\"true\"])')||[]);const currentIndex=availableButtons.indexOf(e.target);const nextIndex=(currentIndex+1)%availableButtons.length;if(availableButtons[nextIndex]){availableButtons[nextIndex].focus();}}else if(e.key===\"ArrowLeft\"||e.key===\"ArrowUp\"&&props.buttonConfigs.direction===\"vertical\"){e.preventDefault();// Find previous available button, wrapping to end if needed\nconst radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=Array.from(radiogroup?.querySelectorAll('[role=\"radio\"]:not([aria-disabled=\"true\"])')||[]);const currentIndex=availableButtons.indexOf(e.target);const prevIndex=currentIndex===0?availableButtons.length-1:currentIndex-1;if(availableButtons[prevIndex]){availableButtons[prevIndex].focus();}}},style:{padding:get(props,\"buttonConfigs.padding\"),width:props.buttonConfigs.layout===\"grid\"?\"100%\":props.buttonConfigs.direction===\"vertical\"&&props.buttonConfigs.width?\"100%\":\"auto\",height:get(props,\"buttonConfigs.height\")===\"Fixed\"?`${get(props,\"buttonConfigs.fixedHeight\")}px`:\"Fit\",...marginStyle,borderRadius:get(props,\"buttonConfigs.radius\"),backgroundColor:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.background\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.background\"):isActive?get(props,\"buttonConfigs.selected.background\"):get(props,\"buttonConfigs.unselected.background\"),...isActive&&!isAvailableForSale?getBorderStyle(borderSelected):!isAvailableForSale?getBorderStyle(borderDisabled):isActive?getBorderStyle(borderSelected):getBorderStyle(borderUnselected),color:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.color\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.color\"):isActive?get(props,\"buttonConfigs.selected.color\"):get(props,\"buttonConfigs.unselected.color\"),fontFamily:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.font.fontFamily\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.font.fontFamily\"):isActive?get(props,\"buttonConfigs.selected.font.fontFamily\"):get(props,\"buttonConfigs.unselected.font.fontFamily\"),fontSize:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.font.fontSize\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.font.fontSize\"):isActive?get(props,\"buttonConfigs.selected.font.fontSize\"):get(props,\"buttonConfigs.unselected.font.fontSize\"),fontWeight:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.font.fontWeight\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.font.fontWeight\"):isActive?get(props,\"buttonConfigs.selected.font.fontWeight\"):get(props,\"buttonConfigs.unselected.font.fontWeight\"),letterSpacing:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.font.letterSpacing\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.font.letterSpacing\"):isActive?get(props,\"buttonConfigs.selected.font.letterSpacing\"):get(props,\"buttonConfigs.unselected.font.letterSpacing\"),textTransform:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.textTransform\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.textTransform\"):isActive?get(props,\"buttonConfigs.selected.textTransform\"):get(props,\"buttonConfigs.unselected.textTransform\"),textAlign:isActive&&!isAvailableForSale?get(props,\"buttonConfigs.selected.font.textAlign\"):!isAvailableForSale?get(props,\"buttonConfigs.outOfStock.font.textAlign\"):isActive?get(props,\"buttonConfigs.selected.font.textAlign\"):get(props,\"buttonConfigs.unselected.font.textAlign\"),cursor:canSelect?\"pointer\":\"not-allowed\",overflow:\"hidden\",position:\"relative\"},onClick:canSelect?()=>dispatchOptionSelectedEvent(opt.name,v):undefined,onMouseEnter:e=>{if(canSelect){const button=e.currentTarget;button.style.backgroundColor=get(props,\"buttonConfigs.hovered.background\");const hoveredBorder=getBorderStyle(borderHovered);if(hoveredBorder.border!==undefined){button.style.border=hoveredBorder.border;}else{button.style.borderTop=hoveredBorder.borderTop;button.style.borderRight=hoveredBorder.borderRight;button.style.borderBottom=hoveredBorder.borderBottom;button.style.borderLeft=hoveredBorder.borderLeft;}button.style.color=get(props,\"buttonConfigs.hovered.color\");}},onMouseLeave:e=>{const button=e.currentTarget;// Always clear all border styles before applying new ones\nbutton.style.border=\"\";button.style.borderTop=\"\";button.style.borderRight=\"\";button.style.borderBottom=\"\";button.style.borderLeft=\"\";if(isActive){button.style.backgroundColor=get(props,\"buttonConfigs.selected.background\");const leaveBorder=getBorderStyle(borderSelected);if(leaveBorder&&leaveBorder.border!==undefined){button.style.border=leaveBorder.border??\"\";}else if(leaveBorder){button.style.borderTop=leaveBorder.borderTop??\"\";button.style.borderRight=leaveBorder.borderRight??\"\";button.style.borderBottom=leaveBorder.borderBottom??\"\";button.style.borderLeft=leaveBorder.borderLeft??\"\";}button.style.color=get(props,\"buttonConfigs.selected.color\");}else if(!isAvailableForSale){button.style.backgroundColor=get(props,\"buttonConfigs.outOfStock.background\");const leaveBorder=getBorderStyle(borderDisabled);if(leaveBorder&&leaveBorder.border!==undefined){button.style.border=leaveBorder.border??\"\";}else if(leaveBorder){button.style.borderTop=leaveBorder.borderTop??\"\";button.style.borderRight=leaveBorder.borderRight??\"\";button.style.borderBottom=leaveBorder.borderBottom??\"\";button.style.borderLeft=leaveBorder.borderLeft??\"\";}button.style.color=get(props,\"buttonConfigs.outOfStock.color\");}else{button.style.backgroundColor=get(props,\"buttonConfigs.unselected.background\");const leaveBorder=getBorderStyle(borderUnselected);if(leaveBorder&&leaveBorder.border!==undefined){button.style.border=leaveBorder.border??\"\";}else if(leaveBorder){button.style.borderTop=leaveBorder.borderTop??\"\";button.style.borderRight=leaveBorder.borderRight??\"\";button.style.borderBottom=leaveBorder.borderBottom??\"\";button.style.borderLeft=leaveBorder.borderLeft??\"\";}button.style.color=get(props,\"buttonConfigs.unselected.color\");}},children:[/*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"inline-block\"},children:[v,isActive&&!isAvailableForSale&&get(props,\"buttonConfigs.outOfStock.strike.line\")&&get(props,\"buttonConfigs.outOfStock.strike.size\")===\"text\"&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",top:\"50%\",left:\"0%\",width:\"100%\",height:\"1px\",backgroundColor:get(props,\"buttonConfigs.outOfStock.strike.color\"),transform:`translateY(-50%)`,transformOrigin:\"center\",pointerEvents:!canSelect?\"none\":\"auto\"}}),!isActive&&!isAvailableForSale&&get(props,\"buttonConfigs.outOfStock.strike.line\")&&get(props,\"buttonConfigs.outOfStock.strike.size\")===\"text\"&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",top:\"50%\",left:\"0%\",width:\"100%\",height:\"1px\",backgroundColor:get(props,\"buttonConfigs.outOfStock.strike.color\"),transform:`translateY(-50%)`,transformOrigin:\"center\",pointerEvents:\"none\"}})]}),isActive&&!isAvailableForSale&&get(props,\"buttonConfigs.outOfStock.strike.line\")&&get(props,\"buttonConfigs.outOfStock.strike.size\")===\"container\"&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:!canSelect?\"none\":\"auto\"},preserveAspectRatio:\"none\",viewBox:\"0 0 100 100\",children:/*#__PURE__*/_jsx(\"line\",{x1:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"0\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"0\":\"0\",y1:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"50\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"100\":\"0\",x2:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"100\":\"100\",y2:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"50\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"0\":\"100\",stroke:get(props,\"buttonConfigs.outOfStock.strike.color\"),strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})}),!isActive&&!isAvailableForSale&&get(props,\"buttonConfigs.outOfStock.strike.line\")&&get(props,\"buttonConfigs.outOfStock.strike.size\")===\"container\"&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},preserveAspectRatio:\"none\",viewBox:\"0 0 100 100\",children:/*#__PURE__*/_jsx(\"line\",{x1:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"0\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"0\":\"0\",y1:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"50\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"100\":\"0\",x2:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"100\":\"100\",y2:get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"horizontal\"?\"50\":get(props,\"buttonConfigs.outOfStock.strike.direction\")===\"diagonal-up\"?\"0\":\"100\",stroke:get(props,\"buttonConfigs.outOfStock.strike.color\"),strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})})]})},v);}),!valid&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{color:\"#FF0000\",fontSize:\"14px\",paddingTop:\"8px\"},children:`\"${opt.name}\" missing`})]})]},opt.name);};// Render color swatches for color variants\n// This creates circular color swatches for the Color/Colour options\n// It will map color names to hex codes using the window.__FcCheckoutConfigs.colors array\n// or fall back to a set of common color codes\nconst renderColorSwatches=(opt,filteredValues,isLast,valid,invalidMsg)=>{// Check if this option should use color swatches by comparing with colorTitles\nconst isSwatchOption=colorTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim());// If this isn't a swatch-enabled option or swatches are disabled, use appropriate renderer\nif(!isSwatchOption||!props.swatches?.colorEnabled){// Use dropdown or buttons\nif(style===\"Dropdown\"){return renderVariantDropdown(opt,filteredValues,isLast,valid,invalidMsg,props,dispatchOptionSelectedEvent,selectedOptions,combinations,get(product,\"options\")?.findIndex(o=>o.name===opt.name)||0,get(product,\"options\")?.length||0);}else{return renderVariantButtons(opt,filteredValues,isLast,valid,invalidMsg);}}const{swatches}=props;return /*#__PURE__*/_jsxs(\"div\",{role:\"radiogroup\",\"aria-label\":`Select ${opt.name}`,\"aria-required\":!valid,\"aria-invalid\":!valid,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:props.titleConfigs.visible||props.selectedConfigs.visible?\"flex\":\"none\",justifyContent:props.titleConfigs.font.textAlign===\"center\"?\"center\":props.titleConfigs.font.textAlign===\"right\"?\"flex-end\":\"flex-start\",marginBottom:get(props,\"containerConfigs.gap2\")!==undefined?get(props,\"containerConfigs.gap2\"):get(props,\"titleConfigs.gap\"),overflow:\"visible\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",overflow:\"visible\"},children:[props.titleConfigs.visible&&/*#__PURE__*/_jsx(\"label\",{id:`variant-title-${opt.name}`,htmlFor:`variant-${opt.name}`,style:{...get(props,\"titleConfigs.font\"),color:get(props,\"titleConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",margin:0,cursor:\"pointer\",textTransform:get(props,\"titleConfigs.textTransform\",\"None\").toLowerCase()},children:(props.titleConfigs.display||\"{{Option}}\").replace(\"{{Option}}\",opt.name)}),props.selectedConfigs.visible&&selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:selectedOptions[opt.name]}),props.selectedConfigs.visible&&props.selectedConfigs.emptyVisible&&!selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:(props.selectedConfigs.emptyText||\"Select {{Option Value}}\").replace(\"{{Option Value}}\",opt.name)})]})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",gap:swatches.gap,width:\"100%\"},children:[filteredValues.map((v,i)=>{const isActive=selectedOptions[opt.name]===v;//console.log(\"isActive\", isActive, selectedOptions[opt.name], v)\nlet isAvailableForSale;if(filterVariants?.variantGroups===\"all\"){const filtered=Array.from(Object.entries({...selectedOptions,[opt.name]:v}));isAvailableForSale=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value)&&combination.availableForSale);}else{const availableValues=Array.from(new Set(combinations.filter(comb=>// Only filter by other selected options, not the current one\n    comb.availableForSale&&// Only include available variants!\n    Object.entries(selectedOptions).filter(([key])=>key!==opt.name).every(([key,value])=>comb[key]===value)).map(comb=>comb[opt.name]).filter(Boolean)));isAvailableForSale=availableValues.includes(v);}const canSelect=isAvailableForSale||selectOutOfStock&&!isAvailableForSale;//console.log(\"canSelect\", canSelect)\n// Get the hex color for this color name\nconst colorName=v.toLowerCase();const hexColor=colorHexMap.get(colorName)||\"#CCCCCC\";// Get the current state's border style\nconst getStateBorder=()=>{if(isActive&&!isAvailableForSale){return swatches.selected.border;}if(!isAvailableForSale){return swatches.outOfStock.border;}if(isActive){return swatches.selected.border;}return swatches.unselected.border;};const getStateBackground=()=>{if(isActive&&!isAvailableForSale){return swatches.selected.background;}if(!isAvailableForSale){return swatches.outOfStock.background;}if(isActive){return swatches.selected.background;}return swatches.unselected.background;};const border=getStateBorder();const background=getStateBackground();return /*#__PURE__*/_jsxs(\"div\",{className:\"variant-swatch-container\",style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"button\",{role:\"radio\",\"aria-checked\":isActive,\"aria-label\":`${opt.name} ${v}${!isAvailableForSale?\" (Out of Stock)\":\"\"}`,title:v,disabled:!isAvailableForSale&&!selectOutOfStock,onClick:()=>{if(isAvailableForSale||selectOutOfStock){dispatchOptionSelectedEvent(opt.name,v);}},tabIndex:isAvailableForSale||selectOutOfStock?0:-1,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();if(canSelect){dispatchOptionSelectedEvent(opt.name,v);}}else if(e.key===\"Home\"){e.preventDefault();const radiogroup=e.target.closest('[role=\"radiogroup\"]');const firstAvailable=radiogroup?.querySelector('[role=\"radio\"]:not([disabled])');if(firstAvailable)firstAvailable.focus();}else if(e.key===\"End\"){e.preventDefault();const radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=radiogroup?.querySelectorAll('[role=\"radio\"]:not([disabled])');if(availableButtons?.length){availableButtons[availableButtons.length-1].focus();}}else if(e.key===\"ArrowRight\"||e.key===\"ArrowDown\"){e.preventDefault();const radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=Array.from(radiogroup?.querySelectorAll('[role=\"radio\"]:not([disabled])')||[]);const currentIndex=availableButtons.indexOf(e.target);const nextIndex=(currentIndex+1)%availableButtons.length;if(availableButtons[nextIndex]){availableButtons[nextIndex].focus();}}else if(e.key===\"ArrowLeft\"||e.key===\"ArrowUp\"){e.preventDefault();const radiogroup=e.target.closest('[role=\"radiogroup\"]');const availableButtons=Array.from(radiogroup?.querySelectorAll('[role=\"radio\"]:not([disabled])')||[]);const currentIndex=availableButtons.indexOf(e.target);const prevIndex=currentIndex===0?availableButtons.length-1:currentIndex-1;if(availableButtons[prevIndex]){availableButtons[prevIndex].focus();}}},onMouseEnter:e=>{if(canSelect){const button=e.currentTarget;const{borderWidth,borderStyle}=swatches.hovered.border;button.style.border=`${borderWidth}px ${borderStyle} ${swatches.hovered.border.borderColor}`;button.style.background=swatches.hovered.background;}},onMouseLeave:e=>{const button=e.currentTarget;const border=getStateBorder();const background=getStateBackground();button.style.border=`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`;button.style.background=background;},style:{width:swatches.width,height:swatches.height,borderRadius:swatches.radius,border:`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`,padding:swatches.padding,cursor:isAvailableForSale||selectOutOfStock?\"pointer\":\"not-allowed\",background:background,position:\"relative\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",borderRadius:swatches.radius,backgroundColor:hexColor,opacity:!isAvailableForSale?swatches.outOfStock.opacity:1,position:\"relative\",overflow:\"hidden\"},children:[isActive&&!isAvailableForSale&&get(props,\"swatches.outOfStock.strike.line\")&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:!canSelect?\"none\":\"auto\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?0:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?0:0,y1:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?50:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?100:0,x2:100,y2:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?50:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?0:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-down\"?100:100,stroke:get(props,\"swatches.outOfStock.strike.color\"),strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})}),!isActive&&!isAvailableForSale&&get(props,\"swatches.outOfStock.strike.line\")&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?0:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?0:0,y1:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?50:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?100:0,x2:100,y2:get(props,\"swatches.outOfStock.strike.direction\")===\"horizontal\"?50:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-up\"?0:get(props,\"swatches.outOfStock.strike.direction\")===\"diagonal-down\"?100:100,stroke:get(props,\"swatches.outOfStock.strike.color\"),strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})})]})}),/*#__PURE__*/_jsx(\"div\",{className:\"swatch-tooltip\",style:{position:\"absolute\",top:\"100%\",left:\"50%\",transform:\"translateX(-50%)\",backgroundColor:\"rgba(0, 0, 0, 0.8)\",color:\"#FFFFFF\",padding:\"4px 8px\",borderRadius:\"4px\",fontSize:\"12px\",marginTop:\"4px\",whiteSpace:\"nowrap\",opacity:0,visibility:\"hidden\",transition:\"opacity 0.2s ease-in-out, visibility 0.2s ease-in-out\",zIndex:10},children:v})]},v);}),!valid&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{color:\"#FF0000\",fontSize:\"14px\",paddingTop:\"8px\"},children:`\"${opt.name}\" missing`})]})]},opt.name);};// Render image swatches for image variants\nconst renderImageSwatches=(opt,filteredValues,isLast,valid,invalidMsg)=>{// Get image titles from props\nconst variantImageTitles=props.imageTitles||[\"Pattern\"];// If this isn't a swatch-enabled option or swatches are disabled, use regular buttons\nconst isSwatchOption=variantImageTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim());if(!isSwatchOption||!props.imageSwatches?.image){return renderVariantButtons(opt,filteredValues,isLast,valid,invalidMsg);}// Get the appropriate style config based on whether we're inheriting or customizing\nconst useCustomStyles=props.imageSwatches.imageStyles===\"customize\";const swatchConfig={gap:useCustomStyles?props.imageSwatches.imageGap:props.swatches?.gap??8,height:useCustomStyles?props.imageSwatches.imageHeight:props.swatches?.height??40,width:useCustomStyles?props.imageSwatches.imageWidth:props.swatches?.width??40,radius:useCustomStyles?props.imageSwatches.imageRadius:props.swatches?.radius??\"50%\",padding:useCustomStyles?props.imageSwatches.imagePadding:props.swatches?.padding??2,unselected:useCustomStyles?props.imageSwatches.imageUnselected:props.swatches?.unselected??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},background:\"#FFFFFF00\"},hovered:useCustomStyles?props.imageSwatches.imageHovered:props.swatches?.hovered??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#CCCCCC\"},background:\"#FFFFFF00\"},selected:useCustomStyles?props.imageSwatches.imageSelected:props.swatches?.selected??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#000000\"},background:\"#FFFFFF00\"},outOfStock:useCustomStyles?props.imageSwatches.imageOutOfStock:props.swatches?.outOfStock??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},opacity:.5,background:\"#FFFFFF00\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}};return /*#__PURE__*/_jsxs(\"div\",{role:\"radiogroup\",\"aria-label\":`Select ${opt.name}`,\"aria-required\":!valid,\"aria-invalid\":!valid,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:props.titleConfigs.visible||props.selectedConfigs.visible?\"flex\":\"none\",justifyContent:props.titleConfigs.font.textAlign===\"center\"?\"center\":props.titleConfigs.font.textAlign===\"right\"?\"flex-end\":\"flex-start\",marginBottom:get(props,\"containerConfigs.gap2\")!==undefined?get(props,\"containerConfigs.gap2\"):get(props,\"titleConfigs.gap\"),overflow:\"visible\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",overflow:\"visible\"},children:[props.titleConfigs.visible&&/*#__PURE__*/_jsx(\"label\",{id:`variant-title-${opt.name}`,htmlFor:`variant-${opt.name}`,style:{...get(props,\"titleConfigs.font\"),color:get(props,\"titleConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",margin:0,cursor:\"pointer\",textTransform:get(props,\"titleConfigs.textTransform\",\"None\").toLowerCase()},children:(props.titleConfigs.display||\"{{Option}}\").replace(\"{{Option}}\",opt.name)}),props.selectedConfigs.visible&&selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:selectedOptions[opt.name]}),props.selectedConfigs.visible&&props.selectedConfigs.emptyVisible&&!selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:(props.selectedConfigs.emptyText||\"Select {{Option Value}}\").replace(\"{{Option Value}}\",opt.name)})]})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",gap:swatchConfig.gap,width:\"100%\"},children:[filteredValues.map((v,i)=>{const isActive=selectedOptions[opt.name]===v;const filtered=Array.from(Object.entries({...selectedOptions,[opt.name]:v}));const isAvailableForSale=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value)&&combination.availableForSale);const canSelect=isAvailableForSale||selectOutOfStock&&!isAvailableForSale;// Get the image URL for this variant name from swatch store\nconst imageValue=swatchImages.find(img=>img.name.toLowerCase()===v.toLowerCase());const imageUrl=imageValue?.url||\"\";// Get the current state's border style\nconst getStateBorder=()=>{if(isActive&&!isAvailableForSale){return swatchConfig.selected.border;}if(!isAvailableForSale){return swatchConfig.outOfStock.border;}if(isActive){return swatchConfig.selected.border;}return swatchConfig.unselected.border;};const getStateBackground=()=>{if(isActive&&!isAvailableForSale){return swatchConfig.selected.background;}if(!isAvailableForSale){return swatchConfig.outOfStock.background;}if(isActive){return swatchConfig.selected.background;}return swatchConfig.unselected.background;};const border=getStateBorder();const background=getStateBackground();return /*#__PURE__*/_jsxs(\"div\",{className:\"variant-swatch-container\",style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"button\",{role:\"radio\",\"aria-checked\":isActive,\"aria-label\":`${opt.name} ${v}${!isAvailableForSale?\" (Out of Stock)\":\"\"}`,title:v,disabled:!isAvailableForSale&&!selectOutOfStock,onClick:()=>{if(isAvailableForSale||selectOutOfStock){dispatchOptionSelectedEvent(opt.name,v);}},tabIndex:isAvailableForSale||selectOutOfStock?0:-1,onMouseEnter:e=>{if(isAvailableForSale||selectOutOfStock){const button=e.currentTarget;const{borderWidth,borderStyle}=swatchConfig.hovered.border;button.style.border=`${borderWidth}px ${borderStyle} ${swatchConfig.hovered.border.borderColor}`;button.style.background=swatchConfig.hovered.background;}},onMouseLeave:e=>{const button=e.currentTarget;const border=getStateBorder();const background=getStateBackground();button.style.border=`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`;button.style.background=background;},style:{width:swatchConfig.width,height:swatchConfig.height,borderRadius:swatchConfig.radius,border:`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`,padding:swatchConfig.padding,cursor:isAvailableForSale||selectOutOfStock?\"pointer\":\"not-allowed\",background:background,position:\"relative\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",borderRadius:swatchConfig.radius,backgroundImage:`url(${imageUrl})`,backgroundSize:\"cover\",backgroundPosition:\"center\",opacity:!isAvailableForSale?swatchConfig.outOfStock.opacity:1,position:\"relative\",overflow:\"hidden\"},children:[!isActive&&!isAvailableForSale&&swatchConfig.outOfStock.strike?.line&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?0:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?0:0,y1:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?100:0,x2:100,y2:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?0:100,stroke:swatchConfig.outOfStock.strike?.color,strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})}),isActive&&!isAvailableForSale&&swatchConfig.outOfStock.strike?.line&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:!canSelect?\"none\":\"auto\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?0:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?0:0,y1:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?100:0,x2:100,y2:swatchConfig.outOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.outOfStock.strike?.direction===\"diagonal-up\"?0:100,stroke:swatchConfig.outOfStock.strike?.color,strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})})]})}),/*#__PURE__*/_jsx(\"div\",{className:\"swatch-tooltip\",style:{position:\"absolute\",top:\"100%\",left:\"50%\",transform:\"translateX(-50%)\",backgroundColor:\"rgba(0, 0, 0, 0.8)\",color:\"#FFFFFF\",padding:\"4px 8px\",borderRadius:\"4px\",fontSize:\"12px\",marginTop:\"4px\",whiteSpace:\"nowrap\",opacity:0,visibility:\"hidden\",transition:\"opacity 0.2s ease-in-out, visibility 0.2s ease-in-out\",zIndex:10},children:v})]},v);}),!valid&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{color:\"#FF0000\",fontSize:\"14px\",paddingTop:\"8px\"},children:`\"${opt.name}\" missing`})]})]},opt.name);};const renderVariantImages=(opt,filteredValues,isLast,valid,invalidMsg)=>{// Use props.variantImageTitles to determine when to show the Variant Images UI\nconst variantImageTitles=props.variantImageTitles||[\"Amount\"];// If this isn't a swatch-enabled option or swatches are disabled, use regular buttons\nconst isSwatchOption=variantImageTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim());// console.log(\"isSwatchOption for\", opt.name, \":\", isSwatchOption, props.variantImages?.image)\nif(!isSwatchOption||!props.variantImages?.image){return renderVariantButtons(opt,filteredValues,isLast,valid,invalidMsg);}// Parse variantImageIds mapping if present\nlet variantImageIdMap=new Map;if(props.variantImageIds){// Use the same parsing function as the main component\nvariantImageIdMap=parseVariantImageIds(props.variantImageIds);}// Helper to get image URL from product images by image number\nconst getImageUrlByNumber=imageNumber=>{if(!imageNumber||!product?.images?.edges)return\"\";const idx=parseInt(imageNumber,10)-1;return product.images.edges[idx]?.node?.url||\"\";};// Get the appropriate style config based on whether we're inheriting or customizing\nlet swatchConfig;if(props.variantImages.imageStyles===\"customize\"){swatchConfig={gap:props.variantImages.imageGap,height:props.variantImages.imageHeight,width:props.variantImages.imageWidth,radius:props.variantImages.imageRadius,padding:props.variantImages.imagePadding,unselected:props.variantImages.imageUnselected,hovered:props.variantImages.imageHovered,selected:props.variantImages.imageSelected,imageOutOfStock:props.variantImages.imageOutOfStock};}else if(props.variantImages.imageStyles===\"inherit\"){if(props.imageSwatches?.image&&props.imageSwatches?.imageStyles){swatchConfig={gap:props.imageSwatches.imageGap,height:props.imageSwatches.imageHeight,width:props.imageSwatches.imageWidth,radius:props.imageSwatches.imageRadius,padding:props.imageSwatches.imagePadding,unselected:props.imageSwatches.imageUnselected,hovered:props.imageSwatches.imageHovered,selected:props.imageSwatches.imageSelected,imageOutOfStock:props.imageSwatches.imageOutOfStock};}else if(props.swatches){swatchConfig={gap:props.swatches.gap??8,height:props.swatches.height??40,width:props.swatches.width??40,radius:props.swatches.radius??\"50%\",padding:props.swatches.padding??2,unselected:props.swatches.unselected??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},background:\"#FFFFFF00\"},hovered:props.swatches.hovered??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#CCCCCC\"},background:\"#FFFFFF00\"},selected:props.swatches.selected??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#000000\"},background:\"#FFFFFF00\"},imageOutOfStock:props.swatches.outOfStock??{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},opacity:.5,background:\"#FFFFFF00\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}};}else{// fallback to default\nswatchConfig={gap:8,height:40,width:40,radius:\"50%\",padding:2,unselected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},background:\"#FFFFFF00\"},hovered:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#CCCCCC\"},background:\"#FFFFFF00\"},selected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#000000\"},background:\"#FFFFFF00\"},imageOutOfStock:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},opacity:.5,background:\"#FFFFFF00\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}};}}else{// fallback to default\nswatchConfig={gap:8,height:40,width:40,radius:\"50%\",padding:2,unselected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},background:\"#FFFFFF00\"},hovered:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#CCCCCC\"},background:\"#FFFFFF00\"},selected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#000000\"},background:\"#FFFFFF00\"},imageOutOfStock:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#FFFFFF\"},opacity:.5,background:\"#FFFFFF00\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}};}return /*#__PURE__*/_jsxs(\"div\",{role:\"radiogroup\",\"aria-label\":`Select ${opt.name}`,\"aria-required\":!valid,\"aria-invalid\":!valid,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:props.titleConfigs.visible||props.selectedConfigs.visible?\"flex\":\"none\",justifyContent:props.titleConfigs.font.textAlign===\"center\"?\"center\":props.titleConfigs.font.textAlign===\"right\"?\"flex-end\":\"flex-start\",marginBottom:get(props,\"containerConfigs.gap2\")!==undefined?get(props,\"containerConfigs.gap2\"):get(props,\"titleConfigs.gap\"),overflow:\"visible\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",overflow:\"visible\"},children:[props.titleConfigs.visible&&/*#__PURE__*/_jsx(\"label\",{id:`variant-title-${opt.name}`,htmlFor:`variant-${opt.name}`,style:{...get(props,\"titleConfigs.font\"),color:get(props,\"titleConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",margin:0,cursor:\"pointer\",textTransform:get(props,\"titleConfigs.textTransform\",\"None\").toLowerCase()},children:(props.titleConfigs.display||\"{{Option}}\").replace(\"{{Option}}\",opt.name)}),props.selectedConfigs.visible&&selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:selectedOptions[opt.name]}),props.selectedConfigs.visible&&props.selectedConfigs.emptyVisible&&!selectedOptions[opt.name]&&/*#__PURE__*/_jsx(\"p\",{style:{...get(props,\"selectedConfigs.font\"),color:get(props,\"selectedConfigs.color\"),whiteSpace:\"nowrap\",overflow:\"visible\",paddingLeft:props.titleConfigs.visible?`${props.selectedConfigs.gap}px`:0,margin:0,textTransform:get(props,\"selectedConfigs.textTransform\",\"None\").toLowerCase()},children:(props.selectedConfigs.emptyText||\"Select {{Option Value}}\").replace(\"{{Option Value}}\",opt.name)})]})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",gap:swatchConfig.gap,width:\"100%\"},children:[filteredValues.map((v,i)=>{const isActive=selectedOptions[opt.name]===v;const filtered=Array.from(Object.entries({...selectedOptions,[opt.name]:v}));const isAvailableForSale=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value)&&combination.availableForSale);const canSelect=isAvailableForSale||selectOutOfStock&&!isAvailableForSale;// Get the variant for this value\nconst variant=combinations.find(combination=>filtered.every(([key,value])=>combination[key]===value));const variantId=variant?.id?.split(\"/\").pop();// Try to get the image from the variant's image.url\nlet variantImageUrl;let variantEdge=undefined;if(variantId&&product?.variants?.edges){variantEdge=product.variants.edges.find(({node})=>node.id.split(\"/\").pop()===variantId);}// Use mapping to get the image number for this variant, and use the corresponding image prop\nlet imageNumber=undefined;if(variantId&&variantImageIdMap.size>0){// console.log(\"variantId:\", variantId)\nimageNumber=variantImageIdMap.get(variantId);// console.log(\"imageNumber:\", imageNumber)\nif(imageNumber){const imageProp=props[`image${imageNumber}`];// console.log(\"imageProp:\", imageProp)\nif(imageProp){variantImageUrl=imageProp;// console.log(\"variantImageUrl (mapping):\", variantImageUrl)\n}}}// console.log(\"variantEdge\", variantEdge)\n// console.log(\"variantImageUrl\", variantImageUrl)\n// Fallback: use variant image.url if no mapping or prop found\nif(!variantImageUrl&&variantEdge&&variantEdge.node?.image?.url){variantImageUrl=variantEdge.node.image.url;// console.log(\"variantImageUrl (fallback):\", variantImageUrl)\n}// LOGGING for debugging\n// console.log(\"[VariantImages Debug]\", {\n//     value: v,\n//     selectedOptions,\n//     filtered,\n//     variant,\n//     variantId,\n//     variantEdge,\n//     variantImageUrlFromVariant:\n//         variantEdge && variantEdge.node\n//             ? variantEdge.node.image?.url\n//             : undefined,\n//     mappedImageNumber: imageNumber,\n//     mappedImageUrl: variantImageUrl,\n//     finalImageUrl: variantImageUrl,\n//     productImages: product?.images?.edges,\n//     variantImageIdMap: Array.from(\n//         variantImageIdMap.entries()\n//     ),\n// })\n// Get the current state's border style\n// const getStateBorder = () => {\n//     if (!canSelect) {\n//         return swatchConfig.imageOutOfStock.border\n//     }\n//     if (isActive) {\n//         return swatchConfig.selected.border\n//     }\n//     return swatchConfig.unselected.border\n// }\n// const border = getStateBorder()\n// Get the current state's border style\nconst getStateBorder=()=>{if(isActive&&!isAvailableForSale){return swatchConfig.selected.border;}if(!isAvailableForSale){return swatchConfig.imageOutOfStock.border;}if(isActive){return swatchConfig.selected.border;}return swatchConfig.unselected.border;};const getStateBackground=()=>{if(isActive&&!isAvailableForSale){return swatchConfig.selected.background;}if(!isAvailableForSale){return swatchConfig.imageOutOfStock.background;}if(isActive){return swatchConfig.selected.background;}return swatchConfig.unselected.background;};const border=getStateBorder();const background=getStateBackground();return /*#__PURE__*/_jsxs(\"div\",{className:\"variant-swatch-container\",style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"button\",{role:\"radio\",\"aria-checked\":isActive,\"aria-label\":`${opt.name} ${v}${!canSelect?\" (Out of Stock)\":\"\"}`,title:v,disabled:!canSelect,onClick:()=>{if(canSelect){dispatchOptionSelectedEvent(opt.name,v);}},tabIndex:canSelect?0:-1,onMouseEnter:e=>{if(canSelect){const button=e.currentTarget;const{borderWidth,borderStyle}=swatchConfig.hovered.border;button.style.border=`${borderWidth}px ${borderStyle} ${swatchConfig.hovered.border.borderColor}`;button.style.background=swatchConfig.hovered.background;}},onMouseLeave:e=>{const button=e.currentTarget;const border=getStateBorder();const background=getStateBackground();button.style.border=`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`;button.style.background=background;},style:{width:swatchConfig.width,height:swatchConfig.height,borderRadius:swatchConfig.radius,border:`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`,padding:swatchConfig.padding,cursor:canSelect?\"pointer\":\"not-allowed\",// background: \"none\",\nbackground:background,position:\"relative\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",borderRadius:swatchConfig.radius,backgroundImage:variantImageUrl?`url(${variantImageUrl})`:undefined,backgroundSize:\"cover\",backgroundPosition:\"center\",opacity:!isAvailableForSale?swatchConfig.imageOutOfStock.opacity:1,backgroundColor:!variantImageUrl?\"#F0F0F0\":undefined,position:\"relative\",overflow:\"hidden\"},children:[!isActive&&!isAvailableForSale&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",background:swatchConfig.imageOutOfStock?.background||\"FFFFFF80\",opacity:swatchConfig.imageOutOfStock.opacity,borderRadius:swatchConfig.radius,pointerEvents:\"none\",zIndex:1}}),isActive&&!isAvailableForSale&&swatchConfig.imageOutOfStock.strike?.line&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:!canSelect?\"none\":\"auto\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?0:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?0:0,y1:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?100:0,x2:100,y2:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?0:100,stroke:swatchConfig.imageOutOfStock.strike?.color,strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})}),!isActive&&!isAvailableForSale&&swatchConfig.imageOutOfStock.strike?.line&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"line\",{x1:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?0:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?0:0,y1:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?100:0,x2:100,y2:swatchConfig.imageOutOfStock.strike?.direction===\"horizontal\"?50:swatchConfig.imageOutOfStock.strike?.direction===\"diagonal-up\"?0:100,stroke:swatchConfig.imageOutOfStock.strike?.color,strokeWidth:\"1\",vectorEffect:\"non-scaling-stroke\"})})]})}),/*#__PURE__*/_jsx(\"div\",{className:\"swatch-tooltip\",style:{position:\"absolute\",top:\"100%\",left:\"50%\",transform:\"translateX(-50%)\",backgroundColor:\"rgba(0, 0, 0, 0.8)\",color:\"#FFFFFF\",padding:\"4px 8px\",borderRadius:\"4px\",fontSize:\"12px\",marginTop:\"4px\",whiteSpace:\"nowrap\",opacity:0,visibility:\"hidden\",transition:\"opacity 0.2s ease-in-out, visibility 0.2s ease-in-out\",zIndex:10},children:v})]},v);}),!valid&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{color:\"#FF0000\",fontSize:\"14px\",paddingTop:\"8px\"},children:`\"${opt.name}\" missing`})]})]},opt.name);};const productHasOptions=product=>{return product&&Array.isArray(get(product,\"options\"))&&get(product,\"options\",[]).length>0&&!(get(product,\"options\",[]).length===1&&get(product,\"options.0.name\")===\"Title\"&&get(product,\"options.0.values.0\")===\"Default Title\");};// Check if we should hide variants\nconst shouldHideVariants=!Array.isArray(get(product,\"variants.edges\"))||!showSingleVariants&&(get(product,\"variants.edges\")||[]).length<=1||!productHasOptions(product)||isCanvas&&variants===\"None\";// If product is set to \"404\", show nothing\nif(product===\"404\"||shouldHideVariants){return null;}// Remove the getConfig function since we're not using FcCheckoutConfigs anymore\nconst getConfig=(key,fallback)=>{return fallback;};return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,className:\"fc-product-variants-container\",style:{padding:props.containerConfigs.padding,display:\"flex\",flexDirection:props.containerConfigs.direction===\"horizontal\"?\"row\":\"column\",flexWrap:props.containerConfigs.direction===\"horizontal\"?\"wrap\":\"nowrap\",gap:props.containerConfigs.gap,width:\"100%\",background:props.containerConfigs.background,borderRadius:props.containerConfigs.radius},role:\"region\",\"aria-label\":\"Product Variants\",children:filteredOptions.map((opt,i)=>{//console.log(\"filteredOptions\", filteredOptions)\nconst isLast=i===(get(product,\"options\")||[{}]).length-1;const valid=!shouldValidate||!!selectedOptions[opt.name];//console.log(\"valid\", valid)\nconst invalidMsg=`\"${opt.name}\" missing`;// Filter values based on available variants when filtering is applied\nlet filteredValues=opt.values;if(filterVariants?.variantGroups!==\"all\"&&filterVariants?.variantTitles){// Get all variants that match the current filter\nconst availableVariants=get(product,\"variants.edges\",[]).filter(({node})=>{return node.selectedOptions.some(option=>filterVariants.variantTitles?.includes(option.name));});// Get all unique values for this option from the filtered variants\nconst availableValues=new Set;availableVariants.forEach(({node})=>{const option=node.selectedOptions.find(o=>o.name===opt.name);if(option){availableValues.add(option.value);}});// Filter the option values to only show available ones\nfilteredValues=opt.values.filter(value=>availableValues.has(value));}//console.log(\"filteredValues\", filteredValues)\n// Get the list of variant titles that should use swatches from config\nconst variantColorTitles=props.colorTitles||[\"Color\",\"Colour\"];const variantImageTitles=props.imageTitles||[];const variantImagesTitles=props.variantImageTitles||[];const useColorSwatches=variantColorTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim())&&props.swatches?.colorEnabled===true;const useImageSwatches=variantImageTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim())&&props.imageSwatches?.image===true;const useVariantImages=variantImagesTitles.some(title=>title.toLowerCase().trim()===opt.name.toLowerCase().trim())&&props.variantImages?.image===true;return /*#__PURE__*/_jsx(\"div\",{style:{flex:style===\"Dropdown\"&&props.containerConfigs.direction===\"horizontal\"?\"1 1 0\"// For dropdowns in horizontal layout: grow and shrink equally, 0 basis to fill space\n:style===\"Dropdown\"?\"1 1 auto\"// For dropdowns in vertical layout: grow and shrink\n:props.containerConfigs.direction===\"horizontal\"?\"0 0 auto\"// For buttons in horizontal layout: don't grow or shrink\n:\"1 1 auto\",minWidth:style===\"Dropdown\"?\"88px\":\"auto\",maxWidth:\"none\",width:style===\"Dropdown\"?\"100%\"// For dropdowns: always fill width\n:props.containerConfigs.direction===\"horizontal\"?\"auto\"// For buttons in horizontal layout: natural width\n:\"100%\",// Apply negative margin for edge-to-edge effect\n...style===\"Dropdown\"&&props.containerConfigs.direction===\"horizontal\"&&props.containerConfigs.gap===0&&!isLast?{marginRight:\"-1px\"}:{}},children:(()=>{if(useColorSwatches){return renderColorSwatches(opt,filteredValues,isLast,valid,invalidMsg);}else if(useImageSwatches){return renderImageSwatches(opt,filteredValues,isLast,valid,invalidMsg);}else if(useVariantImages){return renderVariantImages(opt,filteredValues,isLast,valid,invalidMsg);}else if(style===\"Dropdown\"){return renderVariantDropdown(opt,filteredValues,isLast,valid,invalidMsg,props,dispatchOptionSelectedEvent,selectedOptions,combinations,get(product,\"options\")?.findIndex(o=>o.name===opt.name)||0,get(product,\"options\")?.length||0);}else{return renderVariantButtons(opt,filteredValues,isLast,valid,invalidMsg);}})()},opt.name);})});}function getProductVariant(product,opts){if(!product||!product.variants||!product.variants.edges.length)return null;if(opts==null||typeof opts!==\"object\")return null;const variant=product.variants.edges.find(({node:variant})=>{return Object.entries(opts).every(([key,value])=>{return variant.selectedOptions.find(option=>{return option.name===key&&option.value===value;});});});if(!variant){return null;}return variant.node;}// Helper functions for parsing variants data (for Canvas view only)\n// Pre-compile regex patterns for better performance\nconst OPTION_GROUP_REGEX=/\\[(.*?)\\]/g;const IMAGE_MAPPING_REGEX=/\\[Image (\\d+) • (\\d+)\\]/g;/**\n * Parses a string containing option definitions in the format:\n * [Option Name: Value1,Value2,Value3 • option_id]\n *\n * @param {string} optionsString - The options string to parse\n * @returns {Array} An array of option objects with name, values, and id\n */function parseOptions(optionsString){if(!optionsString)return[];const optionGroups=optionsString.match(OPTION_GROUP_REGEX)||[];return optionGroups.map(group=>{const[titleWithValues,id]=group.slice(1,-1).split(\"•\").map(s=>s.trim());const[title,valuesStr]=titleWithValues.split(\":\").map(s=>s.trim());return{name:title,values:valuesStr.split(\",\").map(v=>v.trim()),id:id||\"\"};});}/**\n * Parses a string containing variant definitions in the format:\n * [Value1/Value2 • variant_id]\n *\n * For a single option, the format is:\n * [Value • variant_id]\n *\n * For multiple options, the format is:\n * [Value1/Value2 • variant_id]\n *\n * @param {string} variantsString - The variants string to parse\n * @returns {Array} An array of variant objects with combination, id, and availableForSale\n */function parseVariants(variantsString){if(!variantsString)return[];const variantGroups=variantsString.match(OPTION_GROUP_REGEX)||[];const parsedVariants=[];for(let i=0;i<variantGroups.length;i++){const group=variantGroups[i];const[combinationPart,id]=group.slice(1,-1).split(\"•\").map(s=>s.trim());// Split only on the separator between options, not inside the option value itself like S/M\nconst values=combinationPart.includes(\" / \")?combinationPart.split(\" / \").map(v=>v.trim()):[combinationPart.trim()];parsedVariants.push({combination:values,id:id||\"\",availableForSale:true});}return parsedVariants;}/**\n * Parses a string containing options and variants data in the following format:\n * [Option Name: Value1,Value2,Value3 • option_id] •• [Value1/Value2 • variant_id][Value1/Value3 • variant_id2] •• product_id\n *\n * The string has three parts separated by \"••\":\n * 1. Options section: One or more option definitions in square brackets\n * 2. Variants section: One or more variant definitions in square brackets\n * 3. (Optional) Product ID: Plain string with the product ID\n *\n * @param {string} combinedString - The combined options and variants string\n * @returns {Object} An object containing parsed options, variants, and optionally a product ID\n */function parseOptionsAndVariants(combinedString){if(!combinedString)return{options:[],variants:[],productId:null};// Split into parts: options, variants, and optionally productId\nconst parts=combinedString.split(\"••\").map(s=>s.trim());const optionsString=parts[0];const variantsString=parts.length>1?parts[1]:\"\";const productId=parts.length>2?parts[2]:null;// Parse options\nconst options=parseOptions(optionsString);// Parse variants\nconst variants=parseVariants(variantsString);return{options,variants,productId};}addPropertyControls(FC_ProductVariants,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to Product ID from CMS (required)\"},variantImageIds:{type:ControlType.String,title:\"Image IDs\",description:\"Connect to Image Variant IDs from CMS [Learn more](https://framercommerce.com/resources/docs/components/product#gallery)\"},variants:{type:ControlType.String,title:\"Variants\",description:\"Connect to Variants from CMS (required)\"},images:{type:ControlType.Object,title:\"Image Triggers\",controls:{imageTrigger:{type:ControlType.Enum,title:\"Type\",options:[\"None\",\"Gallery\",\"Scroll Sections\"],defaultValue:\"None\",description:\"Trigger image changes elsewhere on the page. [Learn more](https://framercommerce.com/resources/docs/components/product#gallery)\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},imageChange:{type:ControlType.Boolean,title:\"Two-Way\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Allow clicking on an image to change the selected variant.\",hidden:({imageTrigger})=>imageTrigger!==\"Gallery\"},offsetY:{type:ControlType.Number,title:\"Offset Y\",description:\"Match your Offset Y to your on-canvas values.\",hidden:({imageTrigger})=>imageTrigger!==\"Scroll Sections\",defaultValue:0,min:0,step:1,displayStepper:true}}},behaviorConfigs:{type:ControlType.Object,title:\"Behavior\",controls:{filterVariants:{type:ControlType.Object,title:\"Filter\",controls:{variantGroups:{type:ControlType.Enum,title:\"Groups\",options:[\"all\",\"equals\",\"doesn't equal\"],optionTitles:[\"All\",\"Equals\",\"Doesn't Equal\"],defaultValue:\"all\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},variantTitles:{type:ControlType.Array,title:\"Titles\",control:{type:ControlType.String},defaultValue:[],description:'Show all variants or filter by title (e.g., \"Color\", \"Size\") using multiple components.',hidden:props=>props.variantGroups===\"all\"}}},action:{type:ControlType.Enum,title:\"Action\",options:[\"Update Active\",\"Add to Cart\",\"Buy Now\"],optionTitles:[\"Update Active\",\"Add to Cart\",\"Buy Now\"],defaultValue:\"Update Active\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"Only set Add to Cart or Buy Now when this component displays a single variant group.\"},triggerCart:{type:ControlType.Boolean,title:\"Cart\",description:\"Trigger cart after adding item\",defaultValue:true,hidden:props=>props.action!==\"Add to Cart\"},autoSelectFirst:{type:ControlType.Boolean,title:\"Select 1st\",description:\"Auto-select the first available variant(s)\",defaultValue:false,hidden:props=>props.action===\"Add to Cart\"||props.action===\"Buy Now\"},productPage:{type:ControlType.Boolean,title:\"PDP\",description:\"Enable if this component is on a product page\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showSingleVariants:{type:ControlType.Boolean,title:\"Singles\",description:\"Show the variant selector if only one variant\",defaultValue:false},// showSingleGroups: {\n//     type: ControlType.Boolean,\n//     title: \"Groups\",\n//     description: \"Show the variant selector if only one group\",\n//     defaultValue: false,\n// },\nselectOutOfStock:{type:ControlType.Boolean,title:\"Out of Stock\",description:\"Allow selecting out of stock variants\",defaultValue:false,hidden:props=>props.action!==\"Update Active\"}}},containerConfigs:{type:ControlType.Object,title:\"Layout\",controls:{padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"8px\"},gap2:{type:ControlType.Number,title:\"Title Gap\",min:0,unit:\"px\"},gap:{type:ControlType.Number,title:\"Group Gap\",min:0,unit:\"px\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true,defaultValue:\"vertical\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 0)\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"}}},titleConfigs:{type:ControlType.Object,title:\"Title\",controls:{visible:{type:ControlType.Boolean,title:\"Title\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:true},display:{type:ControlType.String,title:\"Display\",defaultValue:\"{{Option}}\",placeholder:\"{{Option}}\",description:\"Use {{Option}} to dynamically display Color, Size, etc.\",hidden:props=>!props.visible},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",hidden:props=>!props.visible},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\",hidden:props=>!props.visible},color:{type:ControlType.Color,title:\"Color\",hidden:props=>!props.visible},gap:{type:ControlType.Number,title:\"Gap\",description:\"Space between title and buttons/dropdown\",min:0,unit:\"px\",hidden:props=>!props.visible||true}}},selectedConfigs:{type:ControlType.Object,title:\"Selected Value\",controls:{visible:{type:ControlType.Boolean,title:\"Value\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,unit:\"px\",hidden:props=>!props.visible},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",hidden:props=>!props.visible},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\",hidden:props=>!props.visible},color:{type:ControlType.Color,title:\"Color\",hidden:props=>!props.visible},emptyVisible:{type:ControlType.Boolean,title:\"Empty\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden:props=>!props.visible},emptyText:{type:ControlType.String,title:\"Display\",description:\"Use {{Option Value}} to dynamically display Blue, Medium, etc.\",placeholder:\"Select {{Option Value}}\",defaultValue:\"Select {{Option Value}}\",hidden:props=>!props.visible||!props.emptyVisible}}},style:{type:ControlType.Enum,title:\"Style\",options:[\"Buttons\",\"Dropdown\"],optionTitles:[\"Buttons\",\"Dropdown\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",defaultValue:\"Buttons\"},buttonConfigs:{type:ControlType.Object,title:\"Buttons\",hidden:props=>props.style!==\"Buttons\",controls:{layout:{type:ControlType.Enum,title:\"Layout\",options:[\"stack\",\"grid\"],optionTitles:[\"Stack\",\"Grid\"],displaySegmentedControl:true,defaultValue:\"stack\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true,defaultValue:\"vertical\",hidden:props=>props.layout===\"grid\"},columns:{type:ControlType.Enum,title:\"Columns\",options:[\"auto\",\"fixed\"],optionTitles:[\"Auto\",\"Fixed\"],displaySegmentedControl:true,defaultValue:\"auto\",hidden:props=>props.layout!==\"grid\"},columnCount:{type:ControlType.Number,title:\"Columns\",defaultValue:3,min:1,step:1,displayStepper:true,hidden:props=>props.layout!==\"grid\"||props.columns===\"auto\"},gridWidth:{type:ControlType.Number,title:\"Min Width\",defaultValue:100,min:1,max:1e3,step:1,hidden:props=>props.layout!==\"grid\"||props.columns===\"fixed\"},maxColumns:{type:ControlType.Number,title:\"Max Col\",defaultValue:4,min:1,step:1,displayStepper:true,hidden:props=>props.layout!==\"grid\"||props.columns===\"fixed\"},gap:{type:ControlType.Number,title:\"Gap X\",min:0},gapY:{type:ControlType.Number,title:\"Gap Y\",defaultValue:8,min:0,step:1},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"4px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"8px\"},width:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Fill\",disabledTitle:\"Fit\",defaultValue:false,hidden:props=>props.direction!==\"vertical\"},unselected:{type:ControlType.Object,title:\"Default\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontSize:14,fontFamily:\"Inter\"}},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\"},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 1)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 1)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0,0,0,0.08)\"}}}}},hovered:{type:ControlType.Object,title:\"Hover\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontSize:14,fontFamily:\"Inter\"}},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\"},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 1)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(0, 0, 0, 0.03)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 1)\"}}}}},selected:{type:ControlType.Object,title:\"Selected\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"}},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\"},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"#FFFFFF\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#000000\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"}}}}},outOfStock:{type:ControlType.Object,title:\"Out Of Stock\",controls:{preview:{type:ControlType.Boolean,title:\"Preview\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:false},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"}},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 0.40)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(0, 0, 0, 0.08)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(255, 255, 255, 1)\"}}},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\"},strike:{type:ControlType.Object,title:\"Strike\",controls:{line:{type:ControlType.Boolean,title:\"Line\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},size:{type:ControlType.Enum,title:\"Size\",options:[\"text\",\"container\"],optionTitles:[\"Text\",\"Container\"],defaultValue:\"container\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.line},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\",hidden:props=>!props.line},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"diagonal-up\",\"diagonal-down\"],optionTitles:[\"Horizontal\",\"Diagonal Up\",\"Diagonal Down\"],defaultValue:\"diagonal-down\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.line||props.size===\"text\"}}}}}}},dropdownConfigs:{type:ControlType.Object,title:\"Dropdown\",hidden:props=>props.style!==\"Dropdown\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"None\"},unselected:{type:ControlType.Object,title:\"Unselected\",controls:{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Select {{variant}}\",description:\"Use {{variant}} to insert the variant name\"},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 0.48)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 1)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.08)\"}}}}},selected:{type:ControlType.Object,title:\"Selected\",controls:{color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 1)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 1)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\"}}}}},hover:{type:ControlType.Object,title:\"Hover\",controls:{color:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgba(0, 0, 0, 1)\"},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(0, 0, 0, 0.04)\"},border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 1)\"}}}}},focus:{type:ControlType.Object,title:\"Focus\",controls:{width:{type:ControlType.Number,title:\"Width\",defaultValue:2,min:1,max:20,step:1,displayStepper:true},offset:{type:ControlType.Number,title:\"Offset\",defaultValue:2,min:0,max:20,step:1,displayStepper:true},color:{type:ControlType.Color,title:\"Color\"}}},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"4px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"16px 16px 16px 16px\"},icon:{type:ControlType.Object,title:\"Icon\",controls:{type:{type:ControlType.Enum,title:\"Type\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Custom\"],defaultValue:\"default\",displaySegmentedControl:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 1)\",hidden:props=>props.type===\"custom\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:12,min:8,max:64,step:1},weight:{type:ControlType.Number,title:\"Weight\",defaultValue:2,min:.5,max:4,step:.5,hidden:props=>props.type===\"custom\"},customIcon:{type:ControlType.Image,title:\"Image\",hidden:props=>props.type!==\"custom\"}}}}},swatches:{type:ControlType.Object,title:\"Color Swatches\",controls:{colorEnabled:{type:ControlType.Boolean,title:\"Color\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Show swatches for Color variants. Set hex codes in the plugin. [Learn more](https://framercommerce.com/resources/academy/variant-colors)\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,step:4,hidden:props=>!props.colorEnabled},height:{type:ControlType.Number,title:\"Height\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.colorEnabled},width:{type:ControlType.Number,title:\"Width\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.colorEnabled},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50%\",hidden:props=>!props.colorEnabled},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"2px\",hidden:props=>!props.colorEnabled},unselected:{type:ControlType.Object,title:\"Default\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0)\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 0)\"}},hidden:props=>!props.colorEnabled},hovered:{type:ControlType.Object,title:\"Hover\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFF\"}},hidden:props=>!props.colorEnabled},selected:{type:ControlType.Object,title:\"Selected\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 1)\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 1)\"}},hidden:props=>!props.colorEnabled},outOfStock:{type:ControlType.Object,title:\"Out of Stock\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0,0,0,0)\"}}},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.5,min:0,max:1,step:.1},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 0)\"},strike:{type:ControlType.Object,title:\"Strike\",controls:{line:{type:ControlType.Boolean,title:\"Line\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\",hidden:props=>!props.line},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"diagonal-up\",\"diagonal-down\"],optionTitles:[\"Horizontal\",\"Diagonal Up\",\"Diagonal Down\"],defaultValue:\"diagonal-down\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.line}}}},hidden:props=>!props.colorEnabled}}},colorTitles:{type:ControlType.Array,title:\"↳ Color Titles\",control:{type:ControlType.String},defaultValue:[\"Color\"],hidden:props=>!props.swatches?.colorEnabled},colors:{type:ControlType.Array,title:\"↳ Color Values\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\"},hex:{type:ControlType.Color,title:\"Color\"}}},defaultValue:[[\"green\",\"#D0EF79\"],[\"blue\",\"#053ECF\"],[\"pink\",\"#CC7BE4\"],[\"black\",\"#333233\"]],hidden:props=>!props.swatches?.colorEnabled},imageSwatches:{type:ControlType.Object,title:\"Image Swatches\",controls:{image:{type:ControlType.Boolean,title:\"Images\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Show Image swatches for specific variants. [Learn more](https://framercommerce.com/resources/academy/variant-images)\"},imageStyles:{type:ControlType.Enum,title:\"Styles\",options:[\"inherit\",\"customize\"],optionTitles:[\"Inherit from Colors\",\"Customize\"],defaultValue:\"inherit\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.image},imageGap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,step:4,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageHeight:{type:ControlType.Number,title:\"Height\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageWidth:{type:ControlType.Number,title:\"Width\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50%\",hidden:props=>!props.image||props.imageStyles===\"inherit\"},imagePadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"2px\",hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageUnselected:{type:ControlType.Object,title:\"Default\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageHovered:{type:ControlType.Object,title:\"Hover\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageSelected:{type:ControlType.Object,title:\"Selected\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFFFFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageOutOfStock:{type:ControlType.Object,title:\"Out of Stock\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0)\"}}},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.5,min:0,max:1,step:.1},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 0)\"},strike:{type:ControlType.Object,title:\"Strike\",controls:{line:{type:ControlType.Boolean,title:\"Line\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\",hidden:props=>!props.line},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"diagonal-up\",\"diagonal-down\"],optionTitles:[\"Horizontal\",\"Diagonal Up\",\"Diagonal Down\"],defaultValue:\"diagonal-down\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.line}}}},hidden:props=>!props.image||props.imageStyles===\"inherit\"}}},imageTitles:{type:ControlType.Array,title:\"↳ Image Titles\",control:{type:ControlType.String},defaultValue:[],hidden:props=>!props.imageSwatches?.image},swatchImages:{type:ControlType.Array,title:\"↳ Image Values\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\"},url:{type:ControlType.String,title:\"URL\"}}},defaultValue:[],hidden:props=>!props.imageSwatches?.image},variantImages:{type:ControlType.Object,title:\"Variant Images\",controls:{image:{type:ControlType.Boolean,title:\"Images\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Show variant images for specific variants. Uses the variant's associated image from the product data.\"},imageStyles:{type:ControlType.Enum,title:\"Styles\",options:[\"inherit\",\"customize\"],optionTitles:[\"Inherit from Images\",\"Customize\"],defaultValue:\"inherit\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.image},imageGap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,step:4,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageHeight:{type:ControlType.Number,title:\"Height\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageWidth:{type:ControlType.Number,title:\"Width\",defaultValue:40,min:8,max:80,step:4,displayStepper:true,hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50%\",hidden:props=>!props.image||props.imageStyles===\"inherit\"},imagePadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"2px\",hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageUnselected:{type:ControlType.Object,title:\"Default\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageHovered:{type:ControlType.Object,title:\"Hover\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageSelected:{type:ControlType.Object,title:\"Selected\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"}}},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFFFFF\"}},hidden:props=>!props.image||props.imageStyles===\"inherit\"},imageOutOfStock:{type:ControlType.Object,title:\"Out of Stock\",controls:{border:{type:ControlType.Object,title:\"Border\",controls:{borderWidth:{type:ControlType.FusedNumber,title:\"Width\",toggleKey:\"isMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"top\",\"right\",\"bottom\",\"left\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:1},borderStyle:{type:ControlType.Enum,title:\"Style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},borderColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0)\"}}},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.5,min:0,max:1,step:.1},background:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(255, 255, 255, 0)\"},strike:{type:ControlType.Object,title:\"Strike\",controls:{line:{type:ControlType.Boolean,title:\"Line\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0, 0, 0, 0.16)\",hidden:props=>!props.line},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"diagonal-up\",\"diagonal-down\"],optionTitles:[\"Horizontal\",\"Diagonal Up\",\"Diagonal Down\"],defaultValue:\"diagonal-down\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>!props.line}}}},hidden:props=>!props.image||props.imageStyles===\"inherit\"}}},variantImageTitles:{type:ControlType.Array,title:\"↳ Variant Image Titles\",control:{type:ControlType.String},defaultValue:[],hidden:props=>!props.variantImages?.image},// Add up to 100 image props for variant images\n...(()=>{const imageControls={};for(let i=1;i<=100;i++){imageControls[`image${i}`]={type:ControlType.Image,title:`↳ Image ${i}`,hidden:props=>{if(!props.variantImages?.image)return true;if(i===1)return false;// Only show if previous image is set\nreturn!props[`image${i-1}`];}};}return imageControls;})()});FC_ProductVariants.defaultProps={shopifyProductID:\"\",variantImageIds:\"\",variants:\"\",images:{imageTrigger:\"None\",imageChange:true,offsetY:0},behaviorConfigs:{autoSelectFirst:false,showSingleVariants:false,// showSingleGroups: false,\nselectOutOfStock:false,filterVariants:{variantGroups:\"all\",variantTitles:[]},onClickAction:{action:\"update\",purchaseType:\"add to cart\",triggerCart:true}},style:\"Buttons\",buttonConfigs:{gap:8,radius:\"4px\",padding:\"8px\",direction:\"horizontal\",width:false,unselected:{font:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"},color:\"rgba(0, 0, 0, 1)\",background:\"rgba(255, 255, 255, 1)\",border:\"1px solid rgba(0,0,0,0.08)\",textTransform:\"None\"},hovered:{font:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"},color:\"rgba(0, 0, 0, 1)\",background:\"rgba(0, 0, 0, 0.03)\",border:\"1px solid rgba(0, 0, 0, 1)\",textTransform:\"None\"},selected:{font:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"},color:\"rgba(255, 255, 255, 1)\",background:\"rgba(0, 0, 0, 1)\",border:\"1px solid rgba(0, 0, 0, 1)\",textTransform:\"None\"},outOfStock:{font:{fontSize:14,fontWeight:500,fontFamily:\"Inter\"},color:\"rgba(0, 0, 0, 0.40)\",background:\"rgba(0, 0, 0, 0.08)\",border:\"1px solid rgba(255, 255, 255, 1)\",textTransform:\"None\",preview:false,strike:{line:false,size:\"container\",color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}},dropdownConfigs:{font:undefined,textTransform:\"None\",unselected:{text:\"Select {{variant}}\",color:\"rgba(0, 0, 0, 0.48)\",background:\"rgba(255, 255, 255, 1)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,0.08)\"}},selected:{color:\"rgba(0, 0, 0, 1)\",background:\"rgba(255, 255, 255, 1)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,1)\"}},hover:{color:\"rgba(0, 0, 0, 1)\",background:\"rgba(0, 0, 0, 0.16)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 1)\"}},focus:{width:2,offset:2},radius:\"4px\",padding:\"16px 16px 16px 16px\",icon:{type:\"default\",color:\"rgba(0, 0, 0, 1)\",size:12,weight:2}},containerConfigs:{padding:\"0px\",gap:24,gap2:8,direction:\"vertical\"},titleConfigs:{visible:true,font:undefined,color:\"rgba(0, 0, 0, 1)\",gap:8,display:\"{{Option}}\",textTransform:\"None\"},selectedConfigs:{visible:false,gap:8,font:undefined,color:\"rgba(0, 0, 0, 1)\",emptyVisible:true,emptyText:\"Select {{Option Value}}\",textTransform:\"None\"},swatches:{colorEnabled:true,gap:8,height:40,width:40,radius:\"50%\",padding:2,unselected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},background:\"rgba(255, 255, 255, 0)\"},hovered:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,0.16)\"},background:\"rgba(255, 255, 255, 0)\"},selected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 1)\"},background:\"rgba(255, 255, 255, 0)\"},outOfStock:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},opacity:0,background:\"rgba(255, 255, 255, 0)\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}},imageSwatches:{image:false,imageStyles:\"inherit\",imageGap:8,imageHeight:40,imageWidth:40,imageRadius:\"50%\",imagePadding:2,imageUnselected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},background:\"rgba(255, 255, 255, 0)\"},imageHovered:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.20)\"},background:\"rgba(255, 255, 255, 0)\"},imageSelected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 1)\"},background:\"rgba(255, 255, 255, 0)\"},imageOutOfStock:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},opacity:0,background:\"rgba(255, 255, 255, 0)\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}},imageTitles:[],variantImageTitles:[],variantImages:{image:false,imageStyles:\"inherit\",imageGap:8,imageHeight:40,imageWidth:40,imageRadius:\"50%\",imagePadding:2,imageUnselected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},background:\"rgba(255, 255, 255, 0)\"},imageHovered:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.20)\"},background:\"rgba(255, 255, 255, 0)\"},imageSelected:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 1)\"},background:\"rgba(255, 255, 255, 0)\"},imageOutOfStock:{border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 1)\"},opacity:0,background:\"rgba(255, 255, 255, 0)\",strike:{line:false,color:\"rgba(0, 0, 0, 0.16)\",direction:\"diagonal-down\"}}}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductVariants\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductVariants_v1.map","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 1.5 9 C 0.672 9 0 8.328 0 7.5 L 0 1.5 C 0 0.672 0.672 0 1.5 0 L 19.5 0 C 20.328 0 21 0.672 21 1.5 L 21 7.5 C 21 8.328 20.328 9 19.5 9 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"9px\" id=\"C5isqvphH\" transform=\"translate(1.5 7.5)\" width=\"21px\"/><path d=\"M 0 1.125 C 0 0.504 0.504 0 1.125 0 C 1.746 0 2.25 0.504 2.25 1.125 C 2.25 1.746 1.746 2.25 1.125 2.25 C 0.504 2.25 0 1.746 0 1.125 Z\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"2.25px\" id=\"fJR9wx__O\" transform=\"translate(10.875 10.875)\" width=\"2.25px\"/><path d=\"M 0 1.125 C 0 0.504 0.504 0 1.125 0 C 1.746 0 2.25 0.504 2.25 1.125 C 2.25 1.746 1.746 2.25 1.125 2.25 C 0.504 2.25 0 1.746 0 1.125 Z\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"2.25px\" id=\"ovj684Q0x\" transform=\"translate(17.25 10.875)\" width=\"2.25px\"/><path d=\"M 0 1.125 C 0 0.504 0.504 0 1.125 0 C 1.746 0 2.25 0.504 2.25 1.125 C 2.25 1.746 1.746 2.25 1.125 2.25 C 0.504 2.25 0 1.746 0 1.125 Z\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"2.25px\" id=\"l41uZQQdv\" transform=\"translate(4.5 10.875)\" width=\"2.25px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"4019696485\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-DC9b6\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-DC9b6 { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Dots Three\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-DC9b6\");Icon.displayName=\"Dots Three\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:true,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerDisableUnlink\":\"true\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerVector\":\"{\\\"name\\\":\\\"Dots Three\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (612a550)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={mbIIHH9Pe:{hover:true,pressed:true}};const serializationHash=\"framer-E9Xxz\";const variantClassNames={mbIIHH9Pe:\"framer-v-17cok1c\"};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 transformTemplate1=(_,t)=>`translate(-50%, -50%) ${t}`;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=({color,height,id,link,text,width,...props})=>{return{...props,bqPor4RWR:text??props.bqPor4RWR??\"Level 1\",GdVLiC_yX:color??props.GdVLiC_yX??\"rgb(255, 255, 255)\",ukrMOdGjg:link??props.ukrMOdGjg};};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,bqPor4RWR,ukrMOdGjg,GdVLiC_yX,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"mbIIHH9Pe\",enabledGestures,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(Link,{href:ukrMOdGjg,motionChild:true,nodeId:\"mbIIHH9Pe\",openInNewTab:false,scopeId:\"X_7w8ccj8\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-17cok1c\",className,classNames)} framer-1tzmued`,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"mbIIHH9Pe\",ref:refBinding,style:{...style},...addPropertyOverrides({\"mbIIHH9Pe-hover\":{\"data-framer-name\":undefined},\"mbIIHH9Pe-pressed\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-GdVLiC_yX-X_7w8ccj8))\",\"--framer-text-decoration-offset\":\"3px\",\"--framer-text-decoration-thickness\":\"2px\"},children:\"Level 1\"})}),className:\"framer-mi5dbc\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"xlV2lzQb6\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-GdVLiC_yX-X_7w8ccj8)\",\"--variable-reference-GdVLiC_yX-X_7w8ccj8\":GdVLiC_yX},text:bqPor4RWR,transformTemplate:transformTemplate1,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"mbIIHH9Pe-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-GdVLiC_yX-X_7w8ccj8))\",\"--framer-text-decoration-offset\":\"3px\",\"--framer-text-decoration-thickness\":\"1px\",\"--framer-text-decoration\":\"underline\"},children:\"Level 1\"})})},\"mbIIHH9Pe-pressed\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-GdVLiC_yX-X_7w8ccj8))\",\"--framer-text-decoration-offset\":\"3px\",\"--framer-text-decoration-thickness\":\"1px\",\"--framer-text-decoration\":\"underline\"},children:\"Level 1\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-E9Xxz.framer-1tzmued, .framer-E9Xxz .framer-1tzmued { display: block; }\",\".framer-E9Xxz.framer-17cok1c { cursor: pointer; height: 14px; overflow: visible; position: relative; text-decoration: none; width: 45px; }\",\".framer-E9Xxz .framer-mi5dbc { -webkit-user-select: none; flex: none; height: auto; left: 49%; position: absolute; top: 50%; user-select: none; white-space: pre; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 14\n * @framerIntrinsicWidth 45\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"WHAgTFDcH\":{\"layout\":[\"fixed\",\"fixed\"]},\"oMK8CEiNq\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"bqPor4RWR\":\"text\",\"ukrMOdGjg\":\"link\",\"GdVLiC_yX\":\"color\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerX_7w8ccj8=withCSS(Component,css,\"framer-E9Xxz\");export default FramerX_7w8ccj8;FramerX_7w8ccj8.displayName=\"Text Link\";FramerX_7w8ccj8.defaultProps={height:14,width:45};addPropertyControls(FramerX_7w8ccj8,{bqPor4RWR:{defaultValue:\"Level 1\",displayTextArea:false,title:\"Text\",type:ControlType.String},ukrMOdGjg:{title:\"Link\",type:ControlType.Link},GdVLiC_yX:{defaultValue:\"rgb(255, 255, 255)\",title:\"Color\",type:ControlType.Color}});addFonts(FramerX_7w8ccj8,[{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/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\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerX_7w8ccj8\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"WHAgTFDcH\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"oMK8CEiNq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"45\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"bqPor4RWR\\\":\\\"text\\\",\\\"ukrMOdGjg\\\":\\\"link\\\",\\\"GdVLiC_yX\\\":\\\"color\\\"}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"14\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./X_7w8ccj8.map","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 12 L 6 6 L 0 0\" fill=\"transparent\" height=\"12px\" id=\"lepvFL2AM\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(9 6)\" width=\"6px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,UO5clYVeQ:stroke??props.UO5clYVeQ??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,UO5clYVeQ,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-3J82X\",className),layoutId:layoutId,ref:ref,style:{\"--43q7um\":UO5clYVeQ,...style}});});const css=[`.framer-3J82X { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--43q7um); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"UO5clYVeQ\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Chevron Right\",\"color\":{\"type\":\"variable\",\"value\":\"43q7um\"},\"set\":{\"localId\":\"vectorSet/T8qKXkLfy\",\"id\":\"T8qKXkLfy\",\"moduleId\":\"fiHEoJwBMFnT6QLOcpPz\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-3J82X\");Icon.displayName=\"Chevron Right\";export default Icon;addPropertyControls(Icon,{UO5clYVeQ:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"UO5clYVeQ\\\":\\\"stroke\\\"}\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Chevron Right\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"43q7um\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/T8qKXkLfy\\\",\\\"id\\\":\\\"T8qKXkLfy\\\",\\\"moduleId\\\":\\\"fiHEoJwBMFnT6QLOcpPz\\\"}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 6 17.251 L 6 11.251 L 10.5 11.251 L 10.5 17.251 L 16.5 17.251 L 16.5 8.251 C 16.5 8.052 16.421 7.861 16.281 7.72 L 8.781 0.22 C 8.64 0.079 8.449 0 8.25 0 C 8.051 0 7.86 0.079 7.719 0.22 L 0.219 7.72 C 0.079 7.861 0 8.052 0 8.251 L 0 17.251 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"17.250589992311827px\" id=\"Zd1kfaYz1\" transform=\"translate(3.75 2.999)\" width=\"16.500000464425764px\"/><path d=\"M 6 17.251 L 6 11.251 L 10.5 11.251 L 10.5 17.251 L 16.5 17.251 L 16.5 8.251 C 16.5 8.052 16.421 7.861 16.281 7.72 L 8.781 0.22 C 8.64 0.079 8.449 0 8.25 0 C 8.051 0 7.86 0.079 7.719 0.22 L 0.219 7.72 C 0.079 7.861 0 8.052 0 8.251 L 0 17.251 Z\" fill=\"transparent\" height=\"17.250589992311827px\" id=\"U148LkUuz\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3.75 2.999)\" width=\"16.500000464425764px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"4175524542\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-7ihGz\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-7ihGz { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"House\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-7ihGz\");Icon.displayName=\"House\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"House\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerDisableUnlink\":\"true\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (612a550)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,Link,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import House from\"https://framerusercontent.com/modules/FVmCnCqw20xX4DJfDJYm/SFCB7H15XZWu6ihL6WN7/u5jXKuGDk.js\";const HouseFonts=getFonts(House);const enabledGestures={u_H5xn76B:{hover:true,pressed:true}};const serializationHash=\"framer-nWs0o\";const variantClassNames={u_H5xn76B:\"framer-v-2bh300\"};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,homeURL,id,linkColor,width,...props})=>{return{...props,eqTo92PK0:linkColor??props.eqTo92PK0??\"rgb(255, 255, 255)\",kSENIGnmu:homeURL??props.kSENIGnmu};};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,kSENIGnmu,eqTo92PK0,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"u_H5xn76B\",enabledGestures,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(Link,{href:kSENIGnmu,motionChild:true,nodeId:\"u_H5xn76B\",openInNewTab:false,scopeId:\"sBqTscSFa\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-2bh300\",className,classNames)} framer-1gs2gc7`,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"u_H5xn76B\",ref:refBinding,style:{...style},...addPropertyOverrides({\"u_H5xn76B-hover\":{\"data-framer-name\":undefined},\"u_H5xn76B-pressed\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-9vp8d0\",\"data-framer-name\":\"Background\",layoutDependency:layoutDependency,layoutId:\"miOZYFoNu\",style:{backgroundColor:eqTo92PK0,borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4,opacity:0},variants:{\"u_H5xn76B-hover\":{opacity:.2},\"u_H5xn76B-pressed\":{opacity:.2}}}),/*#__PURE__*/_jsx(House,{animated:true,className:\"framer-qb6fx7\",\"data-framer-name\":\"Home\",layoutDependency:layoutDependency,layoutId:\"UQ11f_Y0I\",style:{\"--1m6trwb\":0,\"--21h8s6\":eqTo92PK0,\"--pgex8v\":1.5}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-nWs0o.framer-1gs2gc7, .framer-nWs0o .framer-1gs2gc7 { display: block; }\",\".framer-nWs0o.framer-2bh300 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 32px; justify-content: center; overflow: visible; padding: 6px; position: relative; text-decoration: none; width: 32px; }\",\".framer-nWs0o .framer-9vp8d0 { bottom: 0px; flex: none; left: 0px; overflow: visible; position: absolute; right: 0px; top: 0px; z-index: 1; }\",\".framer-nWs0o .framer-qb6fx7 { flex: none; height: var(--framer-aspect-ratio-supported, 20px); position: relative; width: 20px; z-index: 2; }\",\".framer-nWs0o.framer-v-2bh300.pressed .framer-qb6fx7 { height: var(--framer-aspect-ratio-supported, 19px); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 32\n * @framerIntrinsicWidth 32\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"Yuhs0G0Ks\":{\"layout\":[\"fixed\",\"fixed\"]},\"eDYh7nkxY\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"kSENIGnmu\":\"homeURL\",\"eqTo92PK0\":\"linkColor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramersBqTscSFa=withCSS(Component,css,\"framer-nWs0o\");export default FramersBqTscSFa;FramersBqTscSFa.displayName=\"Home Link\";FramersBqTscSFa.defaultProps={height:32,width:32};addPropertyControls(FramersBqTscSFa,{kSENIGnmu:{title:\"Home URL\",type:ControlType.Link},eqTo92PK0:{defaultValue:\"rgb(255, 255, 255)\",title:\"Link Color\",type:ControlType.Color}});addFonts(FramersBqTscSFa,[{explicitInter:true,fonts:[]},...HouseFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramersBqTscSFa\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"Yuhs0G0Ks\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"eDYh7nkxY\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"32\",\"framerVariables\":\"{\\\"kSENIGnmu\\\":\\\"homeURL\\\",\\\"eqTo92PK0\\\":\\\"linkColor\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"32\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./sBqTscSFa.map","// Generated by Framer (af215f2)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,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 DotsThree from\"https://framerusercontent.com/modules/d0hoNrRpYn872KjSwEK4/maLO4KP3jwxcoPSt5zHS/PJrK4EEcb.js\";import TextLink from\"https://framerusercontent.com/modules/EkY4kAGeYVXNTjCuowPt/fv6gJPPhM3sX1TW2yRww/X_7w8ccj8.js\";import ChevronRight from\"https://framerusercontent.com/modules/emeX5mtK81zY3xjRZZog/yPJrR3NnFteL79l7EdeJ/GJPlvTOnP.js\";import HomeLink from\"https://framerusercontent.com/modules/prJr5QLUaeNr5NTSOntq/x95MOzZ2xfHcap9iInQw/sBqTscSFa.js\";const HomeLinkFonts=getFonts(HomeLink);const ChevronRightFonts=getFonts(ChevronRight);const TextLinkFonts=getFonts(TextLink);const DotsThreeFonts=getFonts(DotsThree);const cycleOrder=[\"o349AZQjd\",\"MjqxPjIKm\"];const serializationHash=\"framer-99XsJ\";const variantClassNames={MjqxPjIKm:\"framer-v-10swrus\",o349AZQjd:\"framer-v-1nalfk\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const s7JfVV3pd=undefined;const IPbOsCK8G=undefined;const nEEY3zobq=undefined;const S6K6oPBhz=undefined;const lbmeJdzrj=undefined;const bD7L7Wqi3=undefined;const RbeIVbasR=undefined;const XqJrpXq6E=undefined;const i10Py2ar5=undefined;const KBA0a88As=undefined;const uJPBrtaDV=undefined;const fHFaeUPL2=undefined;const VTBTXF9l1=undefined;const c3zxlHt5_=undefined;const M021U4viQ=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const isSet=value=>{if(Array.isArray(value))return value.length>0;return value!==undefined&&value!==null&&value!==\"\";};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"1-6 Links\":\"o349AZQjd\",\"6+ Links\":\"MjqxPjIKm\"};const Variants=motion.create(React.Fragment);const getProps=({_1StLinkText,_1StLinkURL,_2NdLinkText,_2NdLinkURL,_3RdLinkText,_3RdLinkURL,_4ThLinkText,_4ThLinkURL,_5ThLinkText,_5ThLinkURL,_6ThLinkText,_6ThLinkURL,currentPageText,height,homeURL,id,linkColor,width,...props})=>{return{...props,bD7L7Wqi3:_2NdLinkURL??props.bD7L7Wqi3,c3zxlHt5_:_6ThLinkURL??props.c3zxlHt5_,fHFaeUPL2:_5ThLinkURL??props.fHFaeUPL2,i10Py2ar5:_4ThLinkText??props.i10Py2ar5??\"Level 4\",IPbOsCK8G:linkColor??props.IPbOsCK8G??\"rgb(255, 255, 255)\",KBA0a88As:_4ThLinkURL??props.KBA0a88As,lbmeJdzrj:_2NdLinkText??props.lbmeJdzrj??\"Level 2\",M021U4viQ:currentPageText??props.M021U4viQ??\"Current page\",nEEY3zobq:_1StLinkText??props.nEEY3zobq??\"Level 1\",RbeIVbasR:_3RdLinkText??props.RbeIVbasR??\"Level 3\",S6K6oPBhz:_1StLinkURL??props.S6K6oPBhz,s7JfVV3pd:homeURL??props.s7JfVV3pd,uJPBrtaDV:_5ThLinkText??props.uJPBrtaDV??\"Level 5\",variant:humanReadableVariantMap[props.variant]??props.variant??\"o349AZQjd\",VTBTXF9l1:_6ThLinkText??props.VTBTXF9l1??\"Level 6\",XqJrpXq6E:_3RdLinkURL??props.XqJrpXq6E};};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,M021U4viQ,IPbOsCK8G,s7JfVV3pd,nEEY3zobq,S6K6oPBhz,lbmeJdzrj,bD7L7Wqi3,RbeIVbasR,XqJrpXq6E,i10Py2ar5,KBA0a88As,uJPBrtaDV,fHFaeUPL2,VTBTXF9l1,c3zxlHt5_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"o349AZQjd\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const visible=isSet(nEEY3zobq);const isDisplayed=value=>{if(baseVariant===\"MjqxPjIKm\")return false;return value;};const visible1=isSet(lbmeJdzrj);const visible2=isSet(RbeIVbasR);const visible3=isSet(i10Py2ar5);const visible4=isSet(uJPBrtaDV);const isDisplayed1=()=>{if(baseVariant===\"MjqxPjIKm\")return true;return false;};const visible5=isSet(VTBTXF9l1);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.section,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1nalfk\",className,classNames),\"data-framer-name\":\"1-6 Links\",layoutDependency:layoutDependency,layoutId:\"o349AZQjd\",ref:refBinding,style:{...style},...addPropertyOverrides({MjqxPjIKm:{\"data-framer-name\":\"6+ Links\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-pe8ik6-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"t_I_HLOlR-container\",nodeId:\"t_I_HLOlR\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(HomeLink,{eqTo92PK0:IPbOsCK8G,height:\"100%\",id:\"t_I_HLOlR\",kSENIGnmu:s7JfVV3pd,layoutId:\"t_I_HLOlR\",width:\"100%\"})})}),isDisplayed(visible!==false)&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ovzv5s\",\"data-framer-name\":\"1st Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"SAyBYQKz9\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-gy76nz\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"FOo3jBUOg\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-1xrlxpw\",layoutDependency:layoutDependency,layoutId:\"WrsUHDuFe\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-pmezp-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"C35fUf8xO-container\",nodeId:\"C35fUf8xO\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:nEEY3zobq,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"C35fUf8xO\",layoutId:\"C35fUf8xO\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:S6K6oPBhz,width:\"100%\"})})})]}),isDisplayed(visible1!==false)&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2dfa60\",\"data-framer-name\":\"2nd Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"k_sUFj2C5\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1lxxm83\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"lyGLUn_Ky\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-dhz15o\",layoutDependency:layoutDependency,layoutId:\"t6dvzhsl2\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ria3he-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"blVra9T_d-container\",nodeId:\"blVra9T_d\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:lbmeJdzrj,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"blVra9T_d\",layoutId:\"blVra9T_d\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:bD7L7Wqi3,width:\"100%\"})})})]}),isDisplayed(visible2!==false)&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ds5sm2\",\"data-framer-name\":\"3rd Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"Imyu_2JIf\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1oypilu\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"CQNcmZdpU\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-1fdynd8\",layoutDependency:layoutDependency,layoutId:\"z99pg2zDm\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-10gd979-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"EyXzx9LXK-container\",nodeId:\"EyXzx9LXK\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:RbeIVbasR,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"EyXzx9LXK\",layoutId:\"EyXzx9LXK\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:XqJrpXq6E,width:\"100%\"})})})]}),isDisplayed(visible3!==false)&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1pg990t\",\"data-framer-name\":\"4th Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"wkL4K__HJ\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1njgzuq\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"vpTt0YMhA\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-1gntm6o\",layoutDependency:layoutDependency,layoutId:\"IH4QZL6R3\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1jqqko-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"ClxtYSWm_-container\",nodeId:\"ClxtYSWm_\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:i10Py2ar5,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"ClxtYSWm_\",layoutId:\"ClxtYSWm_\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:KBA0a88As,width:\"100%\"})})})]}),isDisplayed(visible4!==false)&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-mhvtp8\",\"data-framer-name\":\"5th Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"m2qYO5nWW\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1volvb\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"qV39YSlJP\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-1vaoqmt\",layoutDependency:layoutDependency,layoutId:\"vcHdktyZ0\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-4pat8-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"G9B4_312Q-container\",nodeId:\"G9B4_312Q\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:uJPBrtaDV,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"G9B4_312Q\",layoutId:\"G9B4_312Q\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:fHFaeUPL2,width:\"100%\"})})})]}),isDisplayed1()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1h6g6w9\",\"data-framer-name\":\"Dotted Wrapper\",layoutDependency:layoutDependency,layoutId:\"Tw7fD1qdS\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-zfmv57\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"GE2w558yF\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-pxgchu\",layoutDependency:layoutDependency,layoutId:\"mHEUJfLSw\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-9kj63c\",\"data-framer-name\":\"Dots\",layoutDependency:layoutDependency,layoutId:\"cqXahoh4b\",children:/*#__PURE__*/_jsx(DotsThree,{animated:true,className:\"framer-zm4080\",\"data-framer-name\":\"Home\",layoutDependency:layoutDependency,layoutId:\"znBI9ou5J\",style:{\"--1m6trwb\":0,\"--21h8s6\":IPbOsCK8G,\"--pgex8v\":1.5}})})]}),visible5!==false&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1vvmdb3\",\"data-framer-name\":\"6th Page Wrapper\",layoutDependency:layoutDependency,layoutId:\"sIaXVypMQ\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1c6edon\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"pd4Hbfa1A\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-1ebnwnb\",layoutDependency:layoutDependency,layoutId:\"oR6ji1Rzl\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:14,width:\"45px\",y:(componentViewport?.y||0)+0+9.5,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1dg7hqd-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"nYQwUxM_F-container\",nodeId:\"nYQwUxM_F\",rendersWithMotion:true,scopeId:\"ajzrTqFH4\",children:/*#__PURE__*/_jsx(TextLink,{bqPor4RWR:VTBTXF9l1,GdVLiC_yX:IPbOsCK8G,height:\"100%\",id:\"nYQwUxM_F\",layoutId:\"nYQwUxM_F\",style:{height:\"100%\",width:\"100%\"},ukrMOdGjg:c3zxlHt5_,width:\"100%\"})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1a9i423\",\"data-framer-name\":\"Current Page\",layoutDependency:layoutDependency,layoutId:\"s449IXSzr\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-x830sb\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"lB5ZQCR8X\",children:/*#__PURE__*/_jsx(ChevronRight,{animated:true,className:\"framer-ad52ir\",layoutDependency:layoutDependency,layoutId:\"ByKlicf54\",style:{\"--43q7um\":IPbOsCK8G,opacity:.5}})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-IPbOsCK8G-ajzrTqFH4))\"},children:\"Current page\"})}),className:\"framer-15f2qhb\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"Okd39Fzs_\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-IPbOsCK8G-ajzrTqFH4)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-IPbOsCK8G-ajzrTqFH4\":IPbOsCK8G,opacity:.8},text:M021U4viQ,verticalAlignment:\"top\",withExternalLayout:true})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-99XsJ.framer-29olp0, .framer-99XsJ .framer-29olp0 { display: block; }\",\".framer-99XsJ.framer-1nalfk { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: row; flex-wrap: wrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 819px; }\",\".framer-99XsJ .framer-pe8ik6-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-99XsJ .framer-1ovzv5s, .framer-99XsJ .framer-2dfa60, .framer-99XsJ .framer-1ds5sm2, .framer-99XsJ .framer-1pg990t, .framer-99XsJ .framer-mhvtp8, .framer-99XsJ .framer-1h6g6w9, .framer-99XsJ .framer-1vvmdb3, .framer-99XsJ .framer-1a9i423 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-99XsJ .framer-gy76nz, .framer-99XsJ .framer-1lxxm83, .framer-99XsJ .framer-1oypilu, .framer-99XsJ .framer-1njgzuq, .framer-99XsJ .framer-1volvb, .framer-99XsJ .framer-zfmv57, .framer-99XsJ .framer-9kj63c, .framer-99XsJ .framer-1c6edon, .framer-99XsJ .framer-x830sb { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 8px; position: relative; width: min-content; }\",\".framer-99XsJ .framer-1xrlxpw, .framer-99XsJ .framer-dhz15o, .framer-99XsJ .framer-1fdynd8, .framer-99XsJ .framer-1gntm6o, .framer-99XsJ .framer-1vaoqmt, .framer-99XsJ .framer-pxgchu, .framer-99XsJ .framer-zm4080, .framer-99XsJ .framer-1ebnwnb, .framer-99XsJ .framer-ad52ir { flex: none; height: var(--framer-aspect-ratio-supported, 17px); position: relative; width: 16px; }\",\".framer-99XsJ .framer-pmezp-container, .framer-99XsJ .framer-ria3he-container, .framer-99XsJ .framer-10gd979-container, .framer-99XsJ .framer-1jqqko-container, .framer-99XsJ .framer-4pat8-container, .framer-99XsJ .framer-1dg7hqd-container { flex: none; height: 14px; position: relative; width: 45px; }\",\".framer-99XsJ .framer-15f2qhb { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 32\n * @framerIntrinsicWidth 819\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"MjqxPjIKm\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"M021U4viQ\":\"currentPageText\",\"IPbOsCK8G\":\"linkColor\",\"s7JfVV3pd\":\"homeURL\",\"nEEY3zobq\":\"_1StLinkText\",\"S6K6oPBhz\":\"_1StLinkURL\",\"lbmeJdzrj\":\"_2NdLinkText\",\"bD7L7Wqi3\":\"_2NdLinkURL\",\"RbeIVbasR\":\"_3RdLinkText\",\"XqJrpXq6E\":\"_3RdLinkURL\",\"i10Py2ar5\":\"_4ThLinkText\",\"KBA0a88As\":\"_4ThLinkURL\",\"uJPBrtaDV\":\"_5ThLinkText\",\"fHFaeUPL2\":\"_5ThLinkURL\",\"VTBTXF9l1\":\"_6ThLinkText\",\"c3zxlHt5_\":\"_6ThLinkURL\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerajzrTqFH4=withCSS(Component,css,\"framer-99XsJ\");export default FramerajzrTqFH4;FramerajzrTqFH4.displayName=\"Breadcrumbs/Breadcrumbs\";FramerajzrTqFH4.defaultProps={height:32,width:819};addPropertyControls(FramerajzrTqFH4,{variant:{options:[\"o349AZQjd\",\"MjqxPjIKm\"],optionTitles:[\"1-6 Links\",\"6+ Links\"],title:\"Variant\",type:ControlType.Enum},M021U4viQ:{defaultValue:\"Current page\",displayTextArea:false,title:\"Current Page Text\",type:ControlType.String},onM021U4viQChange:{changes:\"M021U4viQ\",type:ControlType.ChangeHandler},IPbOsCK8G:{defaultValue:\"rgb(255, 255, 255)\",title:\"Link Color\",type:ControlType.Color},s7JfVV3pd:{title:\"Home URL\",type:ControlType.Link},nEEY3zobq:{defaultValue:\"Level 1\",displayTextArea:false,title:\"1st Link Text\",type:ControlType.String},onnEEY3zobqChange:{changes:\"nEEY3zobq\",type:ControlType.ChangeHandler},S6K6oPBhz:{title:\"1st Link URL\",type:ControlType.Link},lbmeJdzrj:{defaultValue:\"Level 2\",displayTextArea:false,title:\"2nd Link Text\",type:ControlType.String},onlbmeJdzrjChange:{changes:\"lbmeJdzrj\",type:ControlType.ChangeHandler},bD7L7Wqi3:{title:\"2nd Link URL\",type:ControlType.Link},RbeIVbasR:{defaultValue:\"Level 3\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"3rd Link Text\",type:ControlType.String},onRbeIVbasRChange:{changes:\"RbeIVbasR\",type:ControlType.ChangeHandler},XqJrpXq6E:{title:\"3rd Link URL\",type:ControlType.Link},i10Py2ar5:{defaultValue:\"Level 4\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"4th Link Text\",type:ControlType.String},oni10Py2ar5Change:{changes:\"i10Py2ar5\",type:ControlType.ChangeHandler},KBA0a88As:{title:\"4th Link URL\",type:ControlType.Link},uJPBrtaDV:{defaultValue:\"Level 5\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"5th Link Text\",type:ControlType.String},onuJPBrtaDVChange:{changes:\"uJPBrtaDV\",type:ControlType.ChangeHandler},fHFaeUPL2:{title:\"5th Link URL\",type:ControlType.Link},VTBTXF9l1:{defaultValue:\"Level 6\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"6th Link Text\",type:ControlType.String},onVTBTXF9l1Change:{changes:\"VTBTXF9l1\",type:ControlType.ChangeHandler},c3zxlHt5_:{title:\"6th Link URL\",type:ControlType.Link}});addFonts(FramerajzrTqFH4,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"}]},...HomeLinkFonts,...ChevronRightFonts,...TextLinkFonts,...DotsThreeFonts],{supportsExplicitInterCodegen:true});FramerajzrTqFH4.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(HomeLink,{},context),forwardLoader(TextLink,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerajzrTqFH4\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"819\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"MjqxPjIKm\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"M021U4viQ\\\":\\\"currentPageText\\\",\\\"IPbOsCK8G\\\":\\\"linkColor\\\",\\\"s7JfVV3pd\\\":\\\"homeURL\\\",\\\"nEEY3zobq\\\":\\\"_1StLinkText\\\",\\\"S6K6oPBhz\\\":\\\"_1StLinkURL\\\",\\\"lbmeJdzrj\\\":\\\"_2NdLinkText\\\",\\\"bD7L7Wqi3\\\":\\\"_2NdLinkURL\\\",\\\"RbeIVbasR\\\":\\\"_3RdLinkText\\\",\\\"XqJrpXq6E\\\":\\\"_3RdLinkURL\\\",\\\"i10Py2ar5\\\":\\\"_4ThLinkText\\\",\\\"KBA0a88As\\\":\\\"_4ThLinkURL\\\",\\\"uJPBrtaDV\\\":\\\"_5ThLinkText\\\",\\\"fHFaeUPL2\\\":\\\"_5ThLinkURL\\\",\\\"VTBTXF9l1\\\":\\\"_6ThLinkText\\\",\\\"c3zxlHt5_\\\":\\\"_6ThLinkURL\\\"}\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"32\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ajzrTqFH4.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{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerDisableUnlink\n */export default function FC_ProductQuantitySelector(props){const{font,textColor=\"#000000\"}=props;const{shopifyProductID}=props;const[quantity,setQuantity]=useState(1);const[maxInventory,setMaxInventory]=useState(0);const[maxQuantity,setMaxQuantity]=useState(null);const isBrowser=typeof window!==\"undefined\";const[activeVariant,setActiveVariant]=useState(null);// Reset state when product ID changes\nuseEffect(()=>{setQuantity(1);setMaxInventory(0);setMaxQuantity(null);},[shopifyProductID]);// Reset maxQuantity when variant changes (to handle orderMax changes)\nuseEffect(()=>{if(activeVariant){setQuantity(1);//console.log(\"Variant changed, resetting quantity to null\")\n}},[activeVariant])// Only trigger when variant ID changes\n;useEffect(()=>{if(!isBrowser)return;const handleVariantChange=e=>{if(e.detail){if(e.detail.productId!==`gid://shopify/Product/${shopifyProductID}`){return;}setActiveVariant(e.detail);let newMaxInventory;if(e.detail.quantityAvailable>=0){newMaxInventory=e.detail.quantityAvailable;}else if(e.detail.quantityAvailable<0){//quantityAvailable can be negative number which mean infinite inventory (continue selling enabled)\nnewMaxInventory=100;}// console.log(\"Variant Change Detected:\", e.detail)\n// console.log(\"New Max Inventory:\", newMaxInventory)\nsetMaxInventory(newMaxInventory);// console.log(\"quantity\", quantity)\n// if (quantity > newMaxInventory) {\nsetQuantity(1);emitQuantityChangeEvent(1);// console.log(\"emitQuantityChangeEvent: Quantity reset to 1 due to inventory change\")\n// }\n}};// Listen for both variant changes and direct inventory updates\ndocument.addEventListener(\"product__active-variant__changed\",handleVariantChange);document.addEventListener(\"product__inventory__changed\",handleVariantChange);return()=>{document.removeEventListener(\"product__active-variant__changed\",handleVariantChange);document.removeEventListener(\"product__inventory__changed\",handleVariantChange);};},[isBrowser,shopifyProductID,quantity]);useEffect(()=>{if(!isBrowser)return;const handleIncrement=e=>{// console.log(\"handleIncrement e.detail\", e.detail)\nif(e.detail?.productId&&e.detail.productId!==shopifyProductID){return;}const eventMax=e.detail?.maxInventory;const currentMax=eventMax!==undefined?eventMax:maxInventory;const quantityMax=maxQuantity!==null?maxQuantity:Infinity;const effectiveMax=Math.min(quantityMax,currentMax);//console.log(\"Setting Max Inventory:\", effectiveMax);\nsetMaxInventory(effectiveMax);// console.log(\"Attempting to increment quantity\")\n// console.log(\"Current Quantity:\", quantity)\n// console.log(\"Event Max:\", eventMax)\n// console.log(\"Current Max Inventory:\", currentMax)\n// console.log(\"Effective Max:\", effectiveMax)\nif(quantity<effectiveMax){const newQuantity=Math.min(quantity+1,effectiveMax);setQuantity(newQuantity);emitQuantityChangeEvent(newQuantity);//console.log(\"Quantity incremented to:\", newQuantity)\nif(newQuantity>=effectiveMax){window.dispatchEvent(new CustomEvent(\"quantityMaxReached\",{detail:{productId:props.shopifyProductID,maxQuantity:effectiveMax}}));// console.log(\"Max quantity reached, event dispatched with effectiveMax/maxQuantity\", effectiveMax)\n}}else{window.dispatchEvent(new CustomEvent(\"quantityMaxReached\",{detail:{productId:props.shopifyProductID,maxQuantity:effectiveMax}}));// console.log(\"Max quantity reached, cannot increment further\")\n}};const handleDecrement=()=>{const newQuantity=Math.max(quantity-1,1);setQuantity(newQuantity);emitQuantityChangeEvent(newQuantity);};window.addEventListener(\"FcQuantityIncrement\",handleIncrement);window.addEventListener(\"FcQuantityDecrement\",handleDecrement);return()=>{window.removeEventListener(\"FcQuantityIncrement\",handleIncrement);window.removeEventListener(\"FcQuantityDecrement\",handleDecrement);};},[quantity,maxInventory,maxQuantity,isBrowser,props.shopifyProductID]);useEffect(()=>{if(maxQuantity!==null&&quantity>=maxQuantity){// console.log(\"emitQuantityChangeEvent: maxQuantity, quantity\", maxQuantity, quantity)\nsetQuantity(maxQuantity);emitQuantityChangeEvent(maxQuantity);}},[maxQuantity,quantity]);useEffect(()=>{if(isBrowser){// console.log(\"Dispatching FcQuantityStateUpdate event: quantity, maxInventory\", quantity, maxInventory);\nwindow.dispatchEvent(new CustomEvent(\"FcQuantityStateUpdate\",{detail:{currentQuantity:quantity,maxInventory:maxInventory,activeVariant:activeVariant}}));}},[quantity,maxInventory,isBrowser,activeVariant]);useEffect(()=>{const handleMaxQuantity=event=>{const{productId,maxQuantity}=event.detail;if(productId===props.shopifyProductID){// console.log(\"setting max quantity\", maxQuantity)\n// If maxQuantity is 0, it means we've reached the limit\n// If maxQuantity is null/undefined, reset to allow normal inventory limits\nif(maxQuantity===0){// console.log(\"Max quantity is 0 - reached limit\", maxQuantity)\nsetMaxQuantity(maxQuantity);}else if(maxQuantity===null||maxQuantity===undefined){// console.log(\"Resetting maxQuantity to null - allowing normal inventory limits\")\nsetMaxQuantity(null);}else{// console.log(\"Setting maxQuantity to:\", maxQuantity)\nsetMaxQuantity(maxQuantity);}}};window.addEventListener(\"setMaxQuantity\",handleMaxQuantity);return()=>window.removeEventListener(\"setMaxQuantity\",handleMaxQuantity);},[props.shopifyProductID]);// Add cart update handler to refresh quantity selector state\nuseEffect(()=>{const handleCartUpdate=()=>{// console.log(\"handleCartUpdate: Cart updated, refreshing quantity selector state\")\n// Reset maxQuantity to allow recalculation\nsetMaxQuantity(null);setQuantity(1);emitQuantityChangeEvent(1);// console.log(\"handleCartUpdate: Reset maxQuantity to null for recalculation\")\n};window.addEventListener(\"shopXtools-cart-update\",handleCartUpdate);return()=>window.removeEventListener(\"shopXtools-cart-update\",handleCartUpdate);},[]);const emitQuantityChangeEvent=newQuantity=>{if(isBrowser){window.dispatchEvent(new CustomEvent(\"FcQuantitySelectorchanges\",{detail:newQuantity}));// console.log(\"Emitted FcQuantitySelectorchanges event with quantity:\", newQuantity)\n}};const containerStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\"};const quantityStyle={margin:\"0\",textAlign:\"center\",color:textColor,...font};return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:/*#__PURE__*/_jsx(\"p\",{style:quantityStyle,children:quantity})});}FC_ProductQuantitySelector.defaultProps={textColor:\"#000000\"};addPropertyControls(FC_ProductQuantitySelector,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS\"},textColor:{type:ControlType.Color,title:\"Text Color\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductQuantitySelector\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductQuantitySelector.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{cloneElement,useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{getProductMetafields}from\"https://framerusercontent.com/modules/yiRfl1JCGhIBUL31WVDk/wupS2XmBAHu1kBQNv9pi/mutations_v2.js\";/**\n * @framerDisableUnlink\n */export default function FC_ProductQuantityButton(props){const{isPlus,activeContent,disabledContent,shopifyProductID}=props;const isPlusAction=isPlus===\"plus\";const[isDisabled,setIsDisabled]=useState(true);const[maxInventory,setMaxInventory]=useState(0);const[currentQuantity,setCurrentQuantity]=useState(1);const[activeVariant,setActiveVariant]=useState(null);const[availableForSaleState,setAvailableForSaleState]=useState(true);const[autoSelectFirst,setAutoSelectFirst]=useState(false);// Check if variant is autoselected by default\nuseEffect(()=>{//console.log(\"FC_ProductPurchaseButton mounted\")\nconst handleAutoSelectFlag=event=>{// console.log(\n//     \"Auto Select event received as:\",\n//     event.detail.autoSelectFirst\n// )\nif(event.detail.shopifyProductID!==`gid://shopify/Product/${shopifyProductID}`){return;}setAutoSelectFirst(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);};},[]);const normalizeId=id=>{// Handle non-string values\nif(!id)return\"\";const idString=String(id);// If it's already just numbers, return it\nif(/^\\d+$/.test(idString)){return idString;}// Otherwise extract the last numeric part\nconst matches=idString.match(/\\d+$/);return matches?matches[0]:\"\";};const getCartLines=()=>{const cart=window.shopXtools?.cart;if(!cart)return[];// Handle different cart data structures\nif(Array.isArray(cart.lines)){return cart.lines;}if(cart.lines?.edges){return cart.lines.edges.map(edge=>edge.node);}if(typeof cart.lines===\"object\"){return Object.values(cart.lines);}return[];};const findMatchingCartItem=(cartLines,productId)=>{if(!cartLines?.length||!productId)return null;// Normalize the expected ID to just the numeric part\nconst normalizedExpectedId=normalizeId(productId);return cartLines.find(line=>{const lineProductId=line?.merchandise?.product?.id||line?.product?.id||line?.productId;// Normalize the line product ID to just the numeric part for comparison\nconst normalizedLineId=normalizeId(lineProductId);return normalizedLineId===normalizedExpectedId;});};const getVariantFromCartItem=(cartItem,product)=>{if(!cartItem||!product?.node?.variants?.edges)return null;const variantId=cartItem?.merchandise?.id||cartItem?.variant?.id||cartItem?.variantId;if(!variantId)return null;// Normalize variant IDs for comparison\nconst normalizedCartVariantId=normalizeId(variantId);// Find matching variant using normalized IDs\nconst variant=product.node.variants.edges.find(edge=>normalizeId(edge.node.id)===normalizedCartVariantId);return variant?.node;};const getCartItemQuantity=cartItem=>{if(!cartItem)return 0;// Handle different cart line item structures\nreturn cartItem?.merchandise?.quantity||// Shopify storefront API format\ncartItem?.quantity||// Direct quantity\ncartItem?.line?.quantity||// Nested line format\n0;};const handleQuantityState=async e=>{// console.log(\"handleQuantityState event\", e.detail)\nconst quantity=e.detail.currentQuantity||0;const inventory=e.detail.maxInventory||0;//console.log(\"Inventory (detail):\", inventory)\nif(typeof window!==\"undefined\"&&window?.shopXtools?.products){const products=Array.isArray(window.shopXtools?.products)?window.shopXtools.products:Object.values(window.shopXtools?.products||{});const expectedId=`gid://shopify/Product/${shopifyProductID}`;const product=products.find(p=>p?.node?.id===expectedId);//console.log(\"product\", product)\nlet variant;if(product?.node?.variants?.edges?.length===1){variant=product?.node?.variants?.edges[0]?.node;setActiveVariant(variant);}else{variant=e.detail.activeVariant;setActiveVariant(variant);}//console.log(\"Variant (detail):\", variant)\nlet availableForSale=variant?.availableForSale??product?.node?.availableForSale??true;let effectiveMax=inventory;// Log current state for debugging\n// console.log(\"Available for Sale:\", availableForSale)\n// console.log(\"Current Quantity:\", quantity)\n// console.log(\"Inventory:\", inventory)\n// console.log(\"Effective Max should match the inventory:\", effectiveMax)\nif(availableForSale&&inventory<=0){effectiveMax=100;// console.log(\"100: Initializing: effectiveMax\", effectiveMax)\n}else if(!availableForSale){effectiveMax=0;// console.log(\"0: Initializing: effectiveMax\", effectiveMax)\n}if(availableForSale&&product?.node?.handle){try{const metafieldsResponse=await window.shopXtools?.handleCartMutation?.(getProductMetafields,{handle:product.node.handle});const orderMax=metafieldsResponse?.product?.metafield_order_max?.value;// console.log(\"handleQuantityState: orderMax\", orderMax)\nconst cartData=window.shopXtools?.cart;const targetProduct=metafieldsResponse.product;if(orderMax>0){if(cartData&&targetProduct){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===targetProduct.id);const productVariantIds=matchingProduct?.node?.variants?.edges?.map(v=>v?.node?.id)??[];// Match variants from cart that belong to this product\nconst matchingLines=cartData?.lines?.edges?.filter(line=>productVariantIds.includes(line?.node?.merchandise?.id))??[];const totalMatchingQuantity=matchingLines.reduce((sum,line)=>{return sum+(line?.node?.quantity||0);},0);// console.log(\"handleQuantityState: Quantity of product variants already in cart:\", totalMatchingQuantity);\n// Adjust the effective max\nconst remainingAllowed=orderMax-totalMatchingQuantity;// console.log(\"handleQuantityState: remainingAllowed:\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"handleQuantityState: Adjusted effectiveMax:\", effectiveMax);\nsetMaxInventory(effectiveMax);setCurrentQuantity(quantity||1);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"handleQuantityState: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"handleQuantityState: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}return;}effectiveMax=Math.min(parseInt(orderMax,10),effectiveMax);}else{// Handle quantityAvailable scenario when orderMax is 0\n// console.log(\"no orderMax, checking quantityAvailable\")\nif(cartData){const cartVariant=cartData?.lines?.edges?.find(line=>line?.node?.merchandise?.id===variant.id);// console.log(\"handleQuantityState: cartVariant:\", cartVariant);\nif(cartVariant){const totalQuantity=cartVariant.node.quantity;// console.log(\"handleQuantityState: Quantity of product variants already in cart:\", totalQuantity);\n// Calculate remaining allowed based on variant's quantityAvailable\nconst variantQnt=variant?.quantityAvailable<=0&&variant?.availableForSale?100:variant?.quantityAvailable;const remainingAllowed=Math.max(0,variantQnt-totalQuantity);// console.log(\"handleQuantityState: remainingAllowed (quantityAvailable):\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"handleQuantityState: Adjusted effectiveMax (quantityAvailable):\", effectiveMax);\nsetMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"handleQuantityState: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"handleQuantityState: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}}}}}catch(error){// Keep existing effectiveMax on error\n}}// console.log(\"quantityState: effectiveMax, quantity, availableForSale\", effectiveMax, quantity, availableForSale)\nsetMaxInventory(effectiveMax);setCurrentQuantity(quantity||1);setAvailableForSaleState(availableForSale);}};// Add cart update handler to refresh quantity button state\nuseEffect(()=>{const handleCartUpdate=async()=>{// console.log(\"handleCartUpdate: Cart updated, refreshing quantity button state\")\nif(typeof window!==\"undefined\"&&window?.shopXtools?.products){const products=Array.isArray(window.shopXtools?.products)?window.shopXtools.products:Object.values(window.shopXtools?.products||{});const expectedId=`gid://shopify/Product/${shopifyProductID}`;const product=products.find(p=>p?.node?.id===expectedId);// console.log(\"handleCartUpdate: product\", product)\nif(product?.node?.handle){try{const metafieldsResponse=await window.shopXtools?.handleCartMutation?.(getProductMetafields,{handle:product.node.handle});const orderMax=metafieldsResponse?.product?.metafield_order_max?.value;// console.log(\"handleCartUpdate: orderMax\", orderMax)\nconst cartData=window.shopXtools?.cart;const targetProduct=metafieldsResponse.product;if(orderMax>0&&cartData&&targetProduct){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===targetProduct.id);const productVariantIds=matchingProduct?.node?.variants?.edges?.map(v=>v?.node?.id)??[];const matchingLines=cartData?.lines?.edges?.filter(line=>productVariantIds.includes(line?.node?.merchandise?.id))??[];const totalMatchingQuantity=matchingLines.reduce((sum,line)=>{return sum+(line?.node?.quantity||0);},0);const remainingAllowed=orderMax-totalMatchingQuantity;const effectiveMax=Math.max(0,Math.min(remainingAllowed,100));setMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){setAvailableForSaleState(false);}else{setAvailableForSaleState(true);}// console.log(\"handleCartUpdate: Updated quantity button state\", {\n//     remainingAllowed,\n//     effectiveMax,\n//     availableForSale: remainingAllowed > 1\n// })\n}else if(!orderMax&&activeVariant&&cartData){// Handle quantityAvailable scenario\nconst cartVariant=cartData?.lines?.edges?.find(line=>line?.node?.merchandise?.id===activeVariant.id);// console.log(\"handleCartUpdate: cartVariant:\", cartVariant);\nif(cartVariant){const totalQuantity=cartVariant.node.quantity;const variantQnt=activeVariant.quantityAvailable<=0&&activeVariant.availableForSale?100:activeVariant.quantityAvailable;const remainingAllowed=Math.max(0,variantQnt-totalQuantity);const effectiveMax=Math.max(0,Math.min(remainingAllowed,100));setMaxInventory(effectiveMax);// console.log(\"handleCartUpdate: effectiveMax:\", effectiveMax);\nif(remainingAllowed===0||remainingAllowed===1){setAvailableForSaleState(false);}else{setAvailableForSaleState(true);}// console.log(\"handleCartUpdate: Updated quantity button state (quantityAvailable)\", {\n//     remainingAllowed,\n//     effectiveMax,\n//     availableForSale: remainingAllowed > 1\n// })\n}}}catch(error){console.error(\"Error updating quantity button state:\",error);}}}};window.addEventListener(\"shopXtools-cart-update\",handleCartUpdate);return()=>{window.removeEventListener(\"shopXtools-cart-update\",handleCartUpdate);};},[shopifyProductID,activeVariant]);useEffect(()=>{const handleVariantChange=async e=>{if(e.detail.productId!==`gid://shopify/Product/${shopifyProductID}`){return;}const variant=e.detail;//console.log(\"Setting variant\", variant)\nsetActiveVariant(variant);if(typeof window!==\"undefined\"&&window?.shopXtools?.products){const products=Array.isArray(window.shopXtools?.products)?window.shopXtools.products:Object.values(window.shopXtools?.products||{});const expectedId=`gid://shopify/Product/${shopifyProductID}`;const product=products.find(p=>p?.node?.id===expectedId);const inventory=variant?.quantityAvailable??product?.node?.variants?.edges?.[0]?.node?.quantityAvailable??0;const availableForSale=variant?.availableForSale??product?.node?.availableForSale??true;let effectiveMax=inventory;if(availableForSale&&inventory<=0){effectiveMax=100;}else if(!availableForSale){effectiveMax=0;}if(availableForSale&&product?.node?.handle){try{const metafieldsResponse=await window.shopXtools?.handleCartMutation?.(getProductMetafields,{handle:product.node.handle});const orderMax=metafieldsResponse?.product?.metafield_order_max?.value;// console.log(\"handleVariantChange: orderMax\", orderMax)\nconst cartData=window.shopXtools?.cart;const targetProduct=metafieldsResponse.product;if(orderMax>0){if(cartData&&targetProduct){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===targetProduct.id);const productVariantIds=matchingProduct?.node?.variants?.edges?.map(v=>v?.node?.id)??[];// Match variants from cart that belong to this product\nconst matchingLines=cartData?.lines?.edges?.filter(line=>productVariantIds.includes(line?.node?.merchandise?.id))??[];const totalMatchingQuantity=matchingLines.reduce((sum,line)=>{return sum+(line?.node?.quantity||0);},0);// console.log(\"handleVariantChange: Quantity of product variants already in cart:\", totalMatchingQuantity);\n// Adjust the effective max\nconst remainingAllowed=orderMax-totalMatchingQuantity;// console.log(\"handleVariantChange: remainingAllowed:\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"handleVariantChange: Adjusted effectiveMax:\", effectiveMax);\nsetMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"handleVariantChange: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"handleVariantChange: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}return;}effectiveMax=Math.min(parseInt(orderMax,10),effectiveMax);// console.log(\"handleVariantChange: orderMax => effectiveMax\", effectiveMax)\n}else{// Handle quantityAvailable scenario when orderMax is 0\n// console.log(\"no orderMax, checking quantityAvailable\")\nif(cartData){const cartVariant=cartData?.lines?.edges?.find(line=>line?.node?.merchandise?.id===variant.id);// console.log(\"handleVariantChange: cartVariant:\", cartVariant);\nif(cartVariant){const totalQuantity=cartVariant.node.quantity;// console.log(\"handleVariantChange: Quantity of product variants already in cart:\", totalQuantity);\n// Calculate remaining allowed based on variant's quantityAvailable\nconst variantQnt=variant?.quantityAvailable<=0&&variant?.availableForSale?100:variant?.quantityAvailable;const remainingAllowed=Math.max(0,variantQnt-totalQuantity);// console.log(\"handleVariantChange: remainingAllowed (quantityAvailable):\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"handleVariantChange: Adjusted effectiveMax (quantityAvailable):\", effectiveMax);\nsetMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"handleVariantChange: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"handleVariantChange: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}}else{// console.log(\"handleVariant: no cartVariant, effectiveMax, availableForSale\", effectiveMax, availableForSale)\nsetMaxInventory(effectiveMax);setAvailableForSaleState(availableForSale);}}}}catch(error){// Keep existing effectiveMax on error\n}}// console.log(\"handleVariant: effectiveMax, availableForSale\", effectiveMax, availableForSale)\nsetMaxInventory(effectiveMax);setAvailableForSaleState(availableForSale);}};const initializeState=async()=>{if(typeof window!==\"undefined\"&&window?.shopXtools?.products){const products=Array.isArray(window.shopXtools?.products)?window.shopXtools.products:Object.values(window.shopXtools?.products||{});const expectedId=`gid://shopify/Product/${shopifyProductID}`;const product=products.find(p=>p?.node?.id===expectedId);let variant;let inventory;let availableForSale;if(autoSelectFirst){variant=product?.node?.variants?.edges[0]?.node;inventory=variant?.quantityAvailable??0;availableForSale=variant?.availableForSale??true;if(!activeVariant){setActiveVariant(variant);// console.log(\"Initializing: variant with autoSelectFirst true (initializeState)\", variant)\n}}else{if(product?.node?.variants?.edges?.length===1){variant=product?.node?.variants?.edges[0]?.node;//console.log(\"initializeState for product with variant === 1: variant\", variant)\ninventory=variant?.quantityAvailable??0;availableForSale=variant?.availableForSale??true;if(!activeVariant){setActiveVariant(variant);//console.log(\"Initializing: variant with autoSelectFirst false and variant === 1 (initializeState)\", variant)\n}}else if(product?.node?.variants?.edges?.length>1){// For products with no variants, use product-level data\nvariant=undefined;const variantEdges=product?.node?.variants?.edges??[];inventory=variantEdges.reduce((sum,{node})=>{return sum+(node.quantityAvailable||0);},0);availableForSale=product?.node?.availableForSale??true;// console.log(\"product-level: inventory, availableForSale\", inventory, availableForSale)\n// console.log(\"product\", product)\nif(!activeVariant){setActiveVariant(variant);// console.log(\"Initializing: variant with autoSelectFirst false and variant !== 1 (initializeState)\", variant)\n}}}let effectiveMax=inventory;// console.log(\"Initializing: inventory\", inventory, \"availableForSale\", availableForSale)\nif(availableForSale&&inventory<=0){effectiveMax=100;}else if(!availableForSale){effectiveMax=0;}if(availableForSale&&product?.node?.handle){try{const metafieldsResponse=await window.shopXtools?.handleCartMutation?.(getProductMetafields,{handle:product.node.handle});const orderMax=metafieldsResponse?.product?.metafield_order_max?.value;// console.log(\"initializeState: orderMax\", orderMax)\nconst cartData=window.shopXtools?.cart;const targetProduct=metafieldsResponse.product;if(orderMax>0){if(cartData&&targetProduct){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===targetProduct.id);const productVariantIds=matchingProduct?.node?.variants?.edges?.map(v=>v?.node?.id)??[];// Match variants from cart that belong to this product\nconst matchingLines=cartData?.lines?.edges?.filter(line=>productVariantIds.includes(line?.node?.merchandise?.id))??[];const totalMatchingQuantity=matchingLines.reduce((sum,line)=>{return sum+(line?.node?.quantity||0);},0);// console.log(\"handleVariantChange: Quantity of product variants already in cart:\", totalMatchingQuantity);\n// Adjust the effective max\nconst remainingAllowed=orderMax-totalMatchingQuantity;// console.log(\"handleVariantChange: remainingAllowed:\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"handleVariantChange: Adjusted effectiveMax:\", effectiveMax);\nsetMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"handleVariantChange: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"handleVariantChange: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}return;}effectiveMax=Math.min(parseInt(orderMax,10),effectiveMax);// console.log(\"initializeState: orderMax => effectiveMax\", effectiveMax)\n}else{// Handle quantityAvailable scenario when orderMax is 0\n// console.log(\"initializeState: no orderMax, checking quantityAvailable\")\nif(cartData){const cartVariant=cartData?.lines?.edges?.find(line=>line?.node?.merchandise?.id===variant.id);// console.log(\"initializeState: cartVariant:\", cartVariant);\nif(cartVariant){const totalQuantity=cartVariant.node.quantity;// console.log(\"initializeState: Quantity of product variants already in cart:\", totalQuantity);\n// Calculate remaining allowed based on variant's quantityAvailable\nconst variantQnt=variant?.quantityAvailable<=0&&variant?.availableForSale?100:variant?.quantityAvailable;const remainingAllowed=Math.max(0,variantQnt-totalQuantity);// console.log(\"initializeState: remainingAllowed (quantityAvailable):\", remainingAllowed);\neffectiveMax=Math.max(0,Math.min(remainingAllowed,effectiveMax));// console.log(\"initializeState: Adjusted effectiveMax (quantityAvailable):\", effectiveMax);\nsetMaxInventory(effectiveMax);if(remainingAllowed===0||remainingAllowed===1){// console.log(\"initializeState: remainingAllowed = 0, disabling plus\");\nsetAvailableForSaleState(false);}else{// console.log(\"initializeState: availableForSale\", availableForSale);\nsetAvailableForSaleState(availableForSale);}}else{// console.log(\"initializeState: no cartVariant, effectiveMax, availableForSale\", effectiveMax, availableForSale)\nsetMaxInventory(effectiveMax);setAvailableForSaleState(availableForSale);}}}}catch(error){// Keep existing effectiveMax on error\n}}}};// Initialize state\ninitializeState();// Add event listeners\ndocument.addEventListener(\"product__active-variant__changed\",handleVariantChange);window.addEventListener(\"FcQuantityStateUpdate\",handleQuantityState);return()=>{document.removeEventListener(\"product__active-variant__changed\",handleVariantChange);window.removeEventListener(\"FcQuantityStateUpdate\",handleQuantityState);};},[isPlusAction,shopifyProductID,autoSelectFirst]);// Single source of truth for disabled state\nuseEffect(()=>{if(isPlusAction){// console.log(\"disabling: availableForSaleState\", availableForSaleState)\n// console.log(\"disabling: maxInventory\", maxInventory)\n// console.log(\"disabling: currentQuantity\", currentQuantity)\nconst canIncrement=availableForSaleState&&currentQuantity<maxInventory;setIsDisabled(!canIncrement);// console.log(\"disabling:!canIncrement\", !canIncrement)\n}else{setIsDisabled(currentQuantity<=1);}},[currentQuantity,maxInventory,availableForSaleState,isPlusAction]);const handleClick=async()=>{if(!isDisabled&&typeof window!==\"undefined\"){const products=Array.isArray(window.shopXtools?.products)?window.shopXtools.products:Object.values(window.shopXtools?.products||{});const expectedId=`gid://shopify/Product/${shopifyProductID}`;const product=products.find(p=>p?.node?.id===expectedId);// Use activeVariant from state (can be undefined for products without variants)\nconst variant=activeVariant;// For products without variants, we can still handle clicks\nif(variant||!variant&&typeof window!==\"undefined\"&&window?.shopXtools?.products){if(isPlusAction&&currentQuantity<maxInventory||!isPlusAction&&currentQuantity>1){const nextQuantity=isPlusAction?currentQuantity+1:currentQuantity-1;window.dispatchEvent(new CustomEvent(isPlusAction?\"FcQuantityIncrement\":\"FcQuantityDecrement\",{detail:{maxInventory,variantId:variant?.id||null,productId:shopifyProductID,currentQuantity}}));}}}};return /*#__PURE__*/_jsx(\"div\",{role:\"button\",tabIndex:0,style:{flex:1,height:\"100%\",cursor:isDisabled?\"not-allowed\":\"pointer\"},onClick:()=>{if(!isDisabled)handleClick();},onKeyPress:e=>{if((e.key===\"Enter\"||e.key===\" \")&&!isDisabled){handleClick();}},\"aria-disabled\":isDisabled,\"aria-label\":isDisabled?\"Button disabled\":\"Button active\",children:!activeContent?.[0]||!disabledContent?.[0]?/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#666\",fontSize:\"14px\"},children:\"Connect Instance\"}):/*#__PURE__*/cloneElement(isDisabled?disabledContent[0]:activeContent[0],{style:{...isDisabled?disabledContent[0].props?.style:activeContent[0].props?.style||{},width:\"100%\",height:\"100%\"}})});}FC_ProductQuantityButton.defaultProps={shopifyProductID:\"\",isPlus:\"plus\"};addPropertyControls(FC_ProductQuantityButton,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS\"},isPlus:{type:ControlType.Enum,title:\"Action\",options:[\"minus\",\"plus\"],optionTitles:[\"➖\",\"➕\"],defaultValue:\"plus\",displaySegmentedControl:true},activeContent:{type:ControlType.ComponentInstance,title:\"Active Button\"},disabledContent:{type:ControlType.ComponentInstance,title:\"Disabled Button\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductQuantityButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductQuantityButton.map","// Generated by Framer (7587b09)\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{Icon as Material}from\"https://framerusercontent.com/modules/6Ldpz1V0DkD45gXvi67I/PCgBX5d6MdQT7E7nhdXn/Material.js\";const MaterialFonts=getFonts(Material);const cycleOrder=[\"pJ0zgMUGF\",\"MJ71ApLSm\",\"VC5bOKuxe\",\"BvEZxOBV2\"];const serializationHash=\"framer-xrcGH\";const variantClassNames={BvEZxOBV2:\"framer-v-9i7i7t\",MJ71ApLSm:\"framer-v-truab4\",pJ0zgMUGF:\"framer-v-aptn2r\",VC5bOKuxe:\"framer-v-11hue5v\"};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 humanReadableVariantMap={\"minus-disabled\":\"BvEZxOBV2\",\"plus-disabled\":\"VC5bOKuxe\",minus:\"MJ71ApLSm\",plus:\"pJ0zgMUGF\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"pJ0zgMUGF\"};};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({cycleOrder,defaultVariant:\"pJ0zgMUGF\",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-aptn2r\",className,classNames),\"data-border\":true,\"data-framer-name\":\"plus\",layoutDependency:layoutDependency,layoutId:\"pJ0zgMUGF\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(34, 34, 34)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-d35e5398-af28-4f97-8e2e-13717c50156f, rgb(255, 255, 255))\",borderBottomLeftRadius:222,borderBottomRightRadius:222,borderTopLeftRadius:222,borderTopRightRadius:222,...style},...addPropertyOverrides({BvEZxOBV2:{\"data-framer-name\":\"minus-disabled\"},MJ71ApLSm:{\"data-framer-name\":\"minus\"},VC5bOKuxe:{\"data-framer-name\":\"plus-disabled\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1d90uf0-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"QbcsNvyvD-container\",nodeId:\"QbcsNvyvD\",rendersWithMotion:true,scopeId:\"KpaWg5ZuQ\",children:/*#__PURE__*/_jsx(Material,{color:\"var(--token-2de60d55-30ed-45f4-87e6-158824b868d3, rgb(0, 0, 0))\",height:\"100%\",iconSearch:\"Home\",iconSelection:\"Add\",iconStyle15:\"Sharp\",iconStyle2:\"Filled\",iconStyle7:\"Filled\",id:\"QbcsNvyvD\",layoutId:\"QbcsNvyvD\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\",...addPropertyOverrides({BvEZxOBV2:{color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\",iconSelection:\"Remove\"},MJ71ApLSm:{iconSelection:\"Remove\"},VC5bOKuxe:{color:\"var(--token-32039339-f64a-42c6-a8f4-f7fdfa12eb53, rgba(0, 0, 0, 0.16))\"}},baseVariant,gestureVariant)})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-xrcGH.framer-owe2pa, .framer-xrcGH .framer-owe2pa { display: block; }\",\".framer-xrcGH.framer-aptn2r { height: 40px; overflow: hidden; position: relative; width: 40px; will-change: var(--framer-will-change-override, transform); }\",\".framer-xrcGH .framer-1d90uf0-container { flex: none; height: 18px; left: calc(50.00000000000002% - 18px / 2); position: absolute; top: calc(50.00000000000002% - 18px / 2); width: 18px; }\",'.framer-xrcGH[data-border=\"true\"]::after, .framer-xrcGH [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 40\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"MJ71ApLSm\":{\"layout\":[\"fixed\",\"fixed\"]},\"VC5bOKuxe\":{\"layout\":[\"fixed\",\"fixed\"]},\"BvEZxOBV2\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerKpaWg5ZuQ=withCSS(Component,css,\"framer-xrcGH\");export default FramerKpaWg5ZuQ;FramerKpaWg5ZuQ.displayName=\"FC Quantity / UI Buttons\";FramerKpaWg5ZuQ.defaultProps={height:40,width:40};addPropertyControls(FramerKpaWg5ZuQ,{variant:{options:[\"pJ0zgMUGF\",\"MJ71ApLSm\",\"VC5bOKuxe\",\"BvEZxOBV2\"],optionTitles:[\"plus\",\"minus\",\"plus-disabled\",\"minus-disabled\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerKpaWg5ZuQ,[{explicitInter:true,fonts:[]},...MaterialFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerKpaWg5ZuQ\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"40\",\"framerIntrinsicWidth\":\"40\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MJ71ApLSm\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"VC5bOKuxe\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"BvEZxOBV2\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KpaWg5ZuQ.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{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsBrowser}from\"https://framerusercontent.com/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";/**\n * @framerDisableUnlink\n */export default function FC_ProductImageVariant(props){const isBrowser=useIsBrowser();const[currentImageNumber,setCurrentImageNumber]=useState(1);// Filter out empty images and create array of valid images\nconst validImages=Array.from({length:250},(_,i)=>({image:props[`image${i+1}`],imageNumber:i+1})).filter(item=>item.image);// Find current image based on image number\nconst currentImage=validImages.find(item=>item.imageNumber===currentImageNumber)?.image||validImages[0]?.image||\"\";// Handle image match events\nuseEffect(()=>{if(!isBrowser||!validImages.length)return;function handleImageMatch(e){if(e.detail&&e.detail.imageNumber){if(props.shopifyProductID&&e.detail.shopifyProductID!==`gid://shopify/Product/${props.shopifyProductID}`){return;}const imageNumber=parseInt(e.detail.imageNumber);if(!isNaN(imageNumber)&&validImages.some(item=>item.imageNumber===imageNumber)){setCurrentImageNumber(imageNumber);}}}document.addEventListener(\"variant__image__match\",handleImageMatch);return()=>{document.removeEventListener(\"variant__image__match\",handleImageMatch);};},[isBrowser,validImages]);if(!isBrowser){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});}return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:props.type===\"Fill\"?\"block\":\"flex\",alignItems:props.type===\"Fill\"?\"stretch\":\"center\",justifyContent:props.type===\"Fill\"?\"stretch\":\"center\",backgroundColor:props.Style?.backgroundColor||\"#f5f5f5\",padding:props.Style?.paddingPerSide?`${props.Style.paddingTop}px ${props.Style.paddingRight}px ${props.Style.paddingBottom}px ${props.Style.paddingLeft}px`:props.Style?.padding||0,borderRadius:props.Style?.radiusPerCorner?`${props.Style.radiusTopLeft}px ${props.Style.radiusTopRight}px ${props.Style.radiusBottomRight}px ${props.Style.radiusBottomLeft}px`:`${props.Style?.borderRadius||0}px`,overflow:\"hidden\",position:\"relative\"},children:currentImage?/*#__PURE__*/_jsx(\"img\",{src:currentImage,alt:\"\",style:{width:\"100%\",height:\"100%\",objectFit:props.type===\"Fill\"?\"cover\":\"contain\",borderRadius:props.Style?.radiusPerCorner?`${props.Style.radiusTopLeft}px ${props.Style.radiusTopRight}px ${props.Style.radiusBottomRight}px ${props.Style.radiusBottomLeft}px`:`${props.Style?.borderRadius||0}px`,display:\"block\",position:props.type===\"Fill\"?\"absolute\":\"relative\",top:props.type===\"Fill\"?0:\"auto\",left:props.type===\"Fill\"?0:\"auto\",minHeight:0,minWidth:0}}):// Show placeholder in canvas mode\ntypeof window!==\"undefined\"&&window.location.hostname.includes(\"framercanvas.com\")&&/*#__PURE__*/_jsxs(\"svg\",{width:\"40%\",height:\"40%\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#9e9e9e\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"3\",width:\"18\",height:\"18\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"8.5\",cy:\"8.5\",r:\"1.5\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"21 15 16 10 5 21\"})]})});}// Generate image property controls dynamically\nconst controls={shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to Product ID from CMS (required)\"},Style:{type:ControlType.Object,title:\"Style\",controls:{backgroundColor:{type:ControlType.Color,title:\"BG\",defaultValue:\"#FFFFFF00\"},borderRadius:{type:ControlType.FusedNumber,title:\"Radius\",defaultValue:0,toggleKey:\"radiusPerCorner\",toggleTitles:[\"All\",\"Corners\"],valueKeys:[\"radiusTopLeft\",\"radiusTopRight\",\"radiusBottomRight\",\"radiusBottomLeft\"],valueLabels:[\"TL\",\"TR\",\"BR\",\"BL\"],min:0,max:100,unit:\"px\"},padding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:0,toggleKey:\"paddingPerSide\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0}}},type:{type:ControlType.Enum,title:\"Type\",options:[\"Fill\",\"Fit\"],defaultValue:\"Fill\",displaySegmentedControl:true},images:{type:ControlType.Enum,title:\"Images\",options:[\"Auto\",\"Set\"],defaultValue:\"Auto\",displaySegmentedControl:true}};// Add Amount control that only shows when images mode is \"Set\"\nconst shouldShowAmount=props=>props.images===\"Set\";controls.amount={type:ControlType.Number,title:\"Amount\",defaultValue:8,min:1,max:250,step:1,displayStepper:true,hidden:props=>!shouldShowAmount(props)};for(let i=1;i<=250;i++){const shouldShow=props=>{if(props.images===\"Set\"){// In Set mode, show images up to the amount specified\nreturn i<=(props.amount||8);}else{// In Auto mode, show first image always, then only show next if previous is filled\nreturn i===1||props[`image${i-1}`];}};controls[`image${i}`]={type:ControlType.Image,title:`Image ${i}`,hidden:props=>!shouldShow(props)};}addPropertyControls(FC_ProductImageVariant,controls);// Generate default props for all 250 images\nconst defaultProps={shopifyProductID:\"\",type:\"Fill\",images:\"Auto\",amount:8,Style:{backgroundColor:\"#f5f5f5\",borderRadius:0,padding:0}};for(let i=1;i<=250;i++){defaultProps[`image${i}`]=\"\";}FC_ProductImageVariant.defaultProps=defaultProps;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductImageVariant\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductImageVariant.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 React,{useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsBrowser}from\"https://framerusercontent.com/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";/**\n * @framerDisableUnlink\n */export default function FC_ProductImageVariantStatic(props){const isBrowser=useIsBrowser();const isCanvas=isBrowser&&!window.shopXtools;const[activeVariant,setActiveVariant]=React.useState(null);const[shouldShowImage,setShouldShowImage]=React.useState(true);const[isHovered,setIsHovered]=React.useState(false);const[currentImageNumber,setCurrentImageNumber]=React.useState(1);const[isReady,setIsReady]=React.useState(false);// Use ref to store the latest triggerImageTap function to avoid useEffect re-runs\nconst triggerImageTapRef=React.useRef(props.triggerImageTap);triggerImageTapRef.current=props.triggerImageTap;// State to track individual selected options for partial variant support\nconst[selectedOptions,setSelectedOptions]=React.useState({});// Ref to track if we've already checked for initial options\nconst hasCheckedInitialOptions=React.useRef(false);// Function to build partial variant object from selected options\nconst buildPartialVariant=React.useCallback(()=>{const options=Object.entries(selectedOptions).map(([name,value])=>({name,value}));return options.length>0?{selectedOptions:options}:null;},[selectedOptions]);// Check for existing selected options on mount (in case events were dispatched before component was ready)\nReact.useEffect(()=>{if(!isBrowser||hasCheckedInitialOptions.current)return;hasCheckedInitialOptions.current=true;// Try to get selected options from sessionStorage (Canvas may be late to receive them)\nconst variantKey=`fc_active_variant_${props.shopifyProductID}`;const readAndApplySaved=()=>{try{const saved=sessionStorage.getItem(variantKey);if(!saved)return false;const parsed=JSON.parse(saved);if(parsed?.selectedOptions){setSelectedOptions(parsed.selectedOptions);return true;}}catch{}return false;};// Initial read\nif(readAndApplySaved()){setIsReady(true);}// Also check URL parameters for variant\nconst urlParams=new URLSearchParams(window.location.search);const variantIdFromUrl=urlParams.get(\"variant\");if(variantIdFromUrl){// console.log(\"📡 [FC_ProductImageVariantStatic] Found variant in URL:\", variantIdFromUrl)\n// We'll need to get the product data to parse this variant\n// For now, we'll rely on the events to handle this\n}// Proactively request a visual sync; some variant components will respond by re-dispatching their current state\ntry{const evt=new CustomEvent(\"variant__visual__sync\",{detail:{productId:props.shopifyProductID?`gid://shopify/Product/${props.shopifyProductID}`:undefined}});document.dispatchEvent(evt);}catch{}// Set multiple retries to catch late-arriving data/events in Canvas\nconst t0=setTimeout(()=>{if(readAndApplySaved())setIsReady(true);},0);const t1=setTimeout(()=>{if(readAndApplySaved())setIsReady(true);},200);const t2=setTimeout(()=>{if(readAndApplySaved())setIsReady(true);},600);const t3=setTimeout(()=>{if(readAndApplySaved())setIsReady(true);},1200);// Final readiness cutoff so Canvas won't stay empty\nconst tReady=setTimeout(()=>setIsReady(true),900);return()=>{clearTimeout(t0);clearTimeout(t1);clearTimeout(t2);clearTimeout(t3);clearTimeout(tReady);};},[isBrowser,props.shopifyProductID]);// Function to check if image should be shown based on variant filtering\nconst checkVariantMatch=React.useCallback((variant,altText)=>{// console.log(\"🔍 [FC_ProductImageVariantStatic] checkVariantMatch called:\", {\n//     variant,\n//     altText,\n//     imageNumber: props.imageNumber,\n//     filterMatch: props.filterMatch,\n//     shopifyProductID: props.shopifyProductID\n// })\nif(!variant||!altText){// console.log(\"🔍 [FC_ProductImageVariantStatic] No variant or alt text, showing image\")\nreturn true// Show image if no variant or alt text\n;}// Handle partial variants - if no selectedOptions, show all images\nif(!variant.selectedOptions||variant.selectedOptions.length===0){// console.log(\"🔍 [FC_ProductImageVariantStatic] No selected options, showing image\")\nreturn true;}const deepValueToString=x=>{if(x==null)return\"\";if(typeof x===\"string\"||typeof x===\"number\")return String(x);if(typeof x===\"object\"){// common shapes:\n// { name: \"Color\", value: \"Sage\" }\n// { name: \"0\", value: { name: \"Color\", value: \"Sage\" } }\nif(\"value\"in x)return deepValueToString(x.value);}return\"\";};//const variantValues = variant.selectedOptions.map((option: any) => option.value.toLowerCase())\nconst variantValues=variant.selectedOptions.map(o=>deepValueToString(o))// unwrap nested shapes\n.filter(Boolean)// drop empties\n.map(v=>v.toLowerCase())// now safe\n;const altTextLower=altText.toLowerCase();// console.log(\"🔍 [FC_ProductImageVariantStatic] Comparing:\", {\n//     variantValues,\n//     altTextLower,\n//     imageNumber: props.imageNumber,\n//     filterMatch: props.filterMatch,\n//     variantSelectedOptions: variant.selectedOptions\n// })\n// Check if variant values are contained in the alt text as whole words\nconst matches=variantValues.map(value=>{// Create a more robust pattern that handles parentheses and special characters\n// Escape special regex characters in the value\nconst escapedValue=value.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");// Try multiple patterns for better matching\nconst patterns=[new RegExp(`\\\\b${escapedValue}\\\\b`,\"i\"),new RegExp(`\\\\(${escapedValue}\\\\)`,\"i\"),new RegExp(`\\\\s${escapedValue}\\\\s`,\"i\"),new RegExp(`^${escapedValue}\\\\s`,\"i\"),new RegExp(`\\\\s${escapedValue}$`,\"i\"),new RegExp(`^${escapedValue}$`,\"i\")];const match=patterns.some(pattern=>pattern.test(altTextLower));// console.log(\"🔍 [FC_ProductImageVariantStatic] Checking value:\", {\n//     value,\n//     escapedValue,\n//     patterns: patterns.map(p => p.source),\n//     altTextLower,\n//     match\n// })\nreturn match;});let hasMatch=false;if(props.FilterVariants?.filterMatch===\"All\"){// All variant values must be present in the alt text\nhasMatch=matches.every(match=>match===true);// console.log(\"🔍 [FC_ProductImageVariantStatic] All match mode - all values must match:\", {\n//     matches,\n//     hasMatch,\n//     imageNumber: props.imageNumber\n// })\n}else{// Any variant value can be present in the alt text (default behavior)\nhasMatch=matches.some(match=>match===true);// console.log(\"🔍 [FC_ProductImageVariantStatic] Any match mode - any value can match:\", {\n//     matches,\n//     hasMatch,\n//     imageNumber: props.imageNumber\n// })\n}// console.log(\"🔍 [FC_ProductImageVariantStatic] Match result:\", {\n//     hasMatch,\n//     imageNumber: props.imageNumber,\n//     filterMatch: props.filterMatch\n// })\nreturn hasMatch;},[props.imageNumber,props.FilterVariants?.filterMatch]);// Update image visibility when active variant or alt text changes\nReact.useEffect(()=>{// console.log(\"🔄 [FC_ProductImageVariantStatic] useEffect triggered:\", {\n//     filterVariants: props.filterVariants,\n//     filterMatch: props.filterMatch,\n//     image: props.image,\n//     imageType: typeof props.image,\n//     imageAlt: typeof props.image === \"object\" ? props.image?.alt : \"N/A\",\n//     activeVariant,\n//     selectedOptions,\n//     imageNumber: props.imageNumber\n// })\nif(props.FilterVariants?.filterVariants===\"If Active Variant\"&&props.image){// Get alt text from ResponsiveImage object\nconst altText=typeof props.image===\"object\"?props.image.alt||\"\":\"\";// Evaluate both complete and partial selections to avoid over-filtering on first render\nconst candidates=[activeVariant,buildPartialVariant()].filter(Boolean);let shouldShow=true;if(candidates.length>0){// console.log(\"candidates\", candidates)\nshouldShow=candidates.some(variant=>checkVariantMatch(variant,altText));// console.log(\"shouldShow for candidates\", shouldShow)\n}// console.log(\"shouldShow \", shouldShow)\nsetShouldShowImage(shouldShow);}else{// console.log(\"🔄 [FC_ProductImageVariantStatic] Filtering disabled or no image, showing image:\", {\n//     imageNumber: props.imageNumber\n// })\nsetShouldShowImage(true)// Always show if filtering is disabled\n;}},[activeVariant,selectedOptions,props.FilterVariants?.filterVariants,props.FilterVariants?.filterMatch,props.image,checkVariantMatch,buildPartialVariant]);useEffect(()=>{if(!isBrowser)return;// Listen for active variant changes\nfunction handleActiveVariantChanged(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Active variant changed:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\nif(e.detail){// Scope to this product if productId provided\nif(e.detail.productId&&e.detail.productId!==`gid://shopify/Product/${props.shopifyProductID}`){return;}setActiveVariant(e.detail);// Clear selected options only when complete variant is selected\nif(e.detail.isCompleteVariant===true){setSelectedOptions({});}// console.log(\"📡 [FC_ProductImageVariantStatic] Cleared selected options due to complete variant\")\n}}// Listen for individual option selections (for partial variant support)\nfunction handleOptionSelected(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Option selected:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\nif(e.detail&&e.detail.optionName&&e.detail.value){// Scope to this product if productId provided\nif(e.detail.productId&&e.detail.productId!==`gid://shopify/Product/${props.shopifyProductID}`){return;}setSelectedOptions(prev=>{const newOptions={...prev,[e.detail.optionName]:e.detail.value};// console.log(\"📡 [FC_ProductImageVariantStatic] Updated selected options:\", newOptions)\nreturn newOptions;});// Clear complete variant when individual options are selected\nsetActiveVariant(null);}}// Listen for options sync events (handles initial auto-selected options)\nfunction handleOptionsSync(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Options sync:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\nif(e.detail&&e.detail.selectedOptions){// Scope to this product if productId provided\nif(e.detail.productId&&e.detail.productId!==`gid://shopify/Product/${props.shopifyProductID}`){return;}setSelectedOptions(e.detail.selectedOptions);// Clear complete variant when options are synced\nsetActiveVariant(null);// console.log(\"📡 [FC_ProductImageVariantStatic] Synced selected options:\", e.detail.selectedOptions)\n}}// Listen for products ready event (might help catch initial state)\nfunction handleProductsReady(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Products ready:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\n// Re-check for saved options when products are ready\nconst variantKey=`fc_active_variant_${props.shopifyProductID}`;const savedVariant=sessionStorage.getItem(variantKey);if(savedVariant){try{const parsedVariant=JSON.parse(savedVariant);if(parsedVariant.selectedOptions){// console.log(\"📡 [FC_ProductImageVariantStatic] Found saved options after products ready:\", parsedVariant.selectedOptions)\nsetSelectedOptions(parsedVariant.selectedOptions);setActiveVariant(null);}}catch(error){// console.log(\"📡 [FC_ProductImageVariantStatic] Error parsing saved variant after products ready:\", error)\n}}else{// No saved variant - check for auto-selected options from product data\ncheckForAutoSelectedOptions();}}// Listen for retry-auto-select event (dispatched by FC_ProductVariants during auto-select)\nfunction handleRetryAutoSelect(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Retry auto-select:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\nif(e.detail&&e.detail.productId===`gid://shopify/Product/${props.shopifyProductID}`){checkForAutoSelectedOptions();}}// Function to check for auto-selected options from product data\nfunction checkForAutoSelectedOptions(){if(!window.shopXtools?.products)return;// Find the product that matches our shopifyProductID\nconst product=window.shopXtools.products.find(p=>p.node.id===`gid://shopify/Product/${props.shopifyProductID}`);if(!product?.node?.variants?.edges)return;// Find the first available variant (this is what autoSelectFirst would select)\nconst firstAvailableVariant=product.node.variants.edges.find(({node})=>node.availableForSale);if(firstAvailableVariant?.node?.selectedOptions){const autoSelectedOptions={};firstAvailableVariant.node.selectedOptions.forEach(option=>{autoSelectedOptions[option.name]=option.value;});// console.log(\"📡 [FC_ProductImageVariantStatic] Found auto-selected options from product data:\", autoSelectedOptions)\nsetSelectedOptions(autoSelectedOptions);setActiveVariant(null);}}// Listen for variant-image match events\nfunction handleVariantImageMatch(e){// console.log(\"📡 [FC_ProductImageVariantStatic] Variant image match:\", {\n//     detail: e.detail,\n//     imageNumber: props.imageNumber\n// })\nif(e.detail&&String(e.detail.imageNumber)===String(props.imageNumber)){if(typeof triggerImageTapRef.current===\"function\"){triggerImageTapRef.current();}else{// console.log(\"⚠️ [FC_ProductImageVariantStatic] triggerImageTap is not a function (in handleVariantImageMatch)\")\n}}// Update current image number for automatic state detection\nif(e.detail&&e.detail.imageNumber){setCurrentImageNumber(e.detail.imageNumber);}}// In Canvas, events can fire before the component is mounted. Attach listeners first,\n// then fire a sync request so owners can re-send state.\ndocument.addEventListener(\"product__active-variant__changed\",handleActiveVariantChanged);document.addEventListener(\"variant_option_selected\",handleOptionSelected);document.addEventListener(\"variant__options__sync\",handleOptionsSync);// Also listen for the visual sync event which is dispatched consistently\ndocument.addEventListener(\"variant__visual__sync\",handleOptionsSync);// Kick off a sync request after listeners are attached\ntry{const evt=new CustomEvent(\"variant__visual__sync\",{detail:{productId:props.shopifyProductID?`gid://shopify/Product/${props.shopifyProductID}`:undefined}});document.dispatchEvent(evt);}catch{}document.addEventListener(\"data__products-ready\",handleProductsReady);document.addEventListener(\"retry-auto-select\",handleRetryAutoSelect);document.addEventListener(\"variant__image__match\",handleVariantImageMatch);return()=>{document.removeEventListener(\"product__active-variant__changed\",handleActiveVariantChanged);document.removeEventListener(\"variant_option_selected\",handleOptionSelected);document.removeEventListener(\"variant__options__sync\",handleOptionsSync);document.removeEventListener(\"variant__visual__sync\",handleOptionsSync);document.removeEventListener(\"data__products-ready\",handleProductsReady);document.removeEventListener(\"retry-auto-select\",handleRetryAutoSelect);document.removeEventListener(\"variant__image__match\",handleVariantImageMatch);};},[isBrowser,props.imageNumber]);const handleClick=()=>{if(isBrowser){// console.log(\"🖱️ [FC_ProductImageVariantStatic] Clicked:\", {\n//     imageNumber: props.imageNumber,\n//     shopifyProductID: props.shopifyProductID,\n//     image: props.image,\n//     clickAction: props.Thumbnail?.clickAction\n// })\n// Handle different click actions\nif(props.Thumbnail?.clickAction===\"Scroll Section\"){// Append #image-X to the URL\nconst currentUrl=new URL(window.location.href);currentUrl.hash=`image-${props.imageNumber}`;window.history.pushState(null,\"\",currentUrl.toString());// Also scroll to the element if it exists\nconst targetElement=document.getElementById(`image-${props.imageNumber}`);if(targetElement){targetElement.scrollIntoView({behavior:\"smooth\"});}}else if(props.Thumbnail?.clickAction===\"Tap Event\"){// Trigger the tap event (with safety check)\nif(typeof triggerImageTapRef.current===\"function\"){triggerImageTapRef.current();}else{// console.log(\"⚠️ [FC_ProductImageVariantStatic] triggerImageTap is not a function\")\n}// Dispatch event with image number for FC_ProductImageVariant\nconst event=new CustomEvent(\"variant__image__match\",{detail:{imageNumber:props.imageNumber,shopifyProductID:props.shopifyProductID?`gid://shopify/Product/${props.shopifyProductID}`:undefined}});document.dispatchEvent(event);// console.log(\"📡 [FC_ProductImageVariantStatic] Dispatched variant__image__match:\", event.detail)\n// Dispatch event with image number (keeping existing for backward compatibility)\nconst event2=new CustomEvent(\"image__number__selected\",{detail:{imageNumber:props.imageNumber}});document.dispatchEvent(event2);// console.log(\"📡 [FC_ProductImageVariantStatic] Dispatched image__number__selected:\", event2.detail)\n}// If clickAction is \"None\", do nothing\n}};if(!isBrowser){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});}// console.log(\"🎨 [FC_ProductImageVariantStatic] Rendering:\", {\n//     image: props.image,\n//     imageType: typeof props.image,\n//     imageAlt: typeof props.image === \"object\" ? props.image?.alt : \"N/A\",\n//     imageSrc: typeof props.image === \"object\" ? props.image?.src : \"N/A\",\n//     shouldShowImage,\n//     filterVariants: props.filterVariants,\n//     filterMatch: props.filterMatch,\n//     imageNumber: props.imageNumber,\n//     shopifyProductID: props.shopifyProductID\n// })\n// console.log(\"🎨 [FC_ProductImageVariantStatic] Height Debug:\", {\n//     size: props.Style?.size,\n//     heightMode: props.Style?.heightMode,\n//     widthMode: props.Style?.widthMode,\n//     thumbnailHeight: props.Style?.thumbnailHeight,\n//     thumbnailWidth: props.Style?.thumbnailWidth,\n//     shouldShowImage\n// })\n// Compute applied border widths and per-corner radii so the image radius\n// matches the inner curve of the border (avoid background bleed in corners)\nconst isThumbnail=props.Thumbnail?.thumbnailMode===\"Yes\";const isActiveImage=isThumbnail&&currentImageNumber===props.imageNumber;const appliedBorder=isThumbnail?isActiveImage?props.Thumbnail?.Active?.activeBorder:isHovered?props.Thumbnail?.Hover?.hoverBorder:props.Style?.inactiveBorder:props.Style?.inactiveBorder;const borderTopWidth=Number(appliedBorder?.borderTopWidth??0);const borderRightWidth=Number(appliedBorder?.borderRightWidth??0);const borderBottomWidth=Number(appliedBorder?.borderBottomWidth??0);const borderLeftWidth=Number(appliedBorder?.borderLeftWidth??0);// Per-corner radii from Style\nconst radiusTopLeft=props.Style?.radiusPerCorner?Number(props.Style?.radiusTopLeft??0):Number(props.Style?.borderRadius??0);const radiusTopRight=props.Style?.radiusPerCorner?Number(props.Style?.radiusTopRight??0):Number(props.Style?.borderRadius??0);const radiusBottomRight=props.Style?.radiusPerCorner?Number(props.Style?.radiusBottomRight??0):Number(props.Style?.borderRadius??0);const radiusBottomLeft=props.Style?.radiusPerCorner?Number(props.Style?.radiusBottomLeft??0):Number(props.Style?.borderRadius??0);// CSS strings for container and image radii\nconst containerBorderRadiusCss=`${radiusTopLeft}px ${radiusTopRight}px ${radiusBottomRight}px ${radiusBottomLeft}px`;// Determine the image scale exactly as used for transform\nlet imageScale=1;if(isThumbnail){if(isActiveImage){imageScale=props.Thumbnail?.Active?.activeScale??props.Style?.inactiveScale??1;}else if(isHovered){imageScale=props.Thumbnail?.Hover?.hoverScale??props.Style?.inactiveScale??1;}else{imageScale=props.Style?.inactiveScale??1;}}else{imageScale=props.Style?.inactiveScale??1;}// Over-index the image radius so it tucks under the border's inner curve\nconst baseInset=1.25// px\n;const innerTL=Math.max(0,radiusTopLeft-Math.max(borderTopWidth,borderLeftWidth));const innerTR=Math.max(0,radiusTopRight-Math.max(borderTopWidth,borderRightWidth));const innerBR=Math.max(0,radiusBottomRight-Math.max(borderBottomWidth,borderRightWidth));const innerBL=Math.max(0,radiusBottomLeft-Math.max(borderBottomWidth,borderLeftWidth));const safeScale=Math.max(imageScale,.001);const insetTLpx=baseInset+.25*Math.max(borderTopWidth,borderLeftWidth);const insetTRpx=baseInset+.25*Math.max(borderTopWidth,borderRightWidth);const insetBRpx=baseInset+.25*Math.max(borderBottomWidth,borderRightWidth);const insetBLpx=baseInset+.25*Math.max(borderBottomWidth,borderLeftWidth);const imgTL=Math.max(0,(innerTL-insetTLpx)/safeScale);const imgTR=Math.max(0,(innerTR-insetTRpx)/safeScale);const imgBR=Math.max(0,(innerBR-insetBRpx)/safeScale);const imgBL=Math.max(0,(innerBL-insetBLpx)/safeScale);const imageBorderRadiusCss=`${imgTL}px ${imgTR}px ${imgBR}px ${imgBL}px`;return /*#__PURE__*/_jsx(\"div\",{style:{height:shouldShowImage&&(props.Style?.size===\"Standard\"||props.Style?.heightMode===\"Fill\")?\"100%\":\"auto\",padding:shouldShowImage?props.Style?.outsidePaddingPerSide?`${props.Style?.outsidePaddingTop}px ${props.Style?.outsidePaddingRight}px ${props.Style?.outsidePaddingBottom}px ${props.Style?.outsidePaddingLeft}px`:props.Style?.outsidePadding:\"0px\",opacity:props.Thumbnail?.thumbnailMode===\"Yes\"?(()=>{const isActive=currentImageNumber===props.imageNumber;if(isActive){return props.Thumbnail?.Active?.activeOpacity??props.Style?.inactiveOpacity??1;}else if(isHovered){return props.Thumbnail?.Hover?.hoverOpacity??props.Style?.inactiveOpacity??1;}else{return props.Style?.inactiveOpacity??1;}})():props.Style?.inactiveOpacity??1,transition:props.Thumbnail?.thumbnailMode===\"Yes\"&&props.Thumbnail?.transition?`opacity ${props.Thumbnail.transition.duration||.3}s ${props.Thumbnail.transition.ease||\"ease-in-out\"}`:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{onClick:props.Thumbnail?.clickAction!==\"None\"?handleClick:undefined,onMouseEnter:props.Thumbnail?.thumbnailMode===\"Yes\"?()=>setIsHovered(true):undefined,onMouseLeave:props.Thumbnail?.thumbnailMode===\"Yes\"?()=>setIsHovered(false):undefined,style:{width:shouldShowImage?props.Style?.size===\"Standard\"?\"100%\":props.Style?.widthMode===\"Fill\"?\"100%\":props.Style?.widthMode===\"Fit\"?\"auto\":`${props.Style?.thumbnailWidth||64}px`:\"0px\",height:shouldShowImage?props.Style?.size===\"Standard\"?\"100%\":props.Style?.heightMode===\"Fill\"?\"100%\":props.Style?.heightMode===\"Fit\"?\"auto\":`${props.Style?.thumbnailHeight||64}px`:\"0px\",cursor:props.Thumbnail?.clickAction!==\"None\"?\"pointer\":\"default\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:(()=>{// Avoid inner-edge halo: when an image fills the container, keep background transparent\nif(props.image&&props.Style?.type===\"Fill\")return\"transparent\";if(props.Thumbnail?.thumbnailMode===\"Yes\"){const isActive=currentImageNumber===props.imageNumber;if(isActive){return props.Thumbnail?.Active?.activeBackgroundColor||props.Style?.inactiveBackgroundColor||\"transparent\";}else if(isHovered){return props.Thumbnail?.Hover?.hoverBackgroundColor||props.Style?.inactiveBackgroundColor||\"transparent\";}else{return props.Style?.inactiveBackgroundColor||(props.image?\"transparent\":\"#f5f5f5\");}}return props.Style?.inactiveBackgroundColor||(props.image?\"transparent\":\"#f5f5f5\");})(),...shouldShowImage?props.Thumbnail?.thumbnailMode===\"Yes\"?currentImageNumber===props.imageNumber?props.Thumbnail?.Active?.activeBorder:isHovered?props.Thumbnail?.Hover?.hoverBorder:props.Style?.inactiveBorder:props.Style?.inactiveBorder||{}:{borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderStyle:\"solid\",borderColor:\"transparent\"},borderRadius:containerBorderRadiusCss,padding:\"0px\",overflow:\"hidden\",backgroundClip:\"padding-box\"},children:props.image&&shouldShowImage?/*#__PURE__*/_jsx(\"img\",{src:typeof props.image===\"string\"?props.image:props.image.src,alt:typeof props.image===\"string\"?\"\":props.image.alt,style:{width:\"100%\",height:\"100%\",objectFit:props.Style?.type===\"Fill\"?\"cover\":\"contain\",borderRadius:imageBorderRadiusCss,transform:`scale(${imageScale})`,transition:props.Thumbnail?.thumbnailMode===\"Yes\"&&props.Thumbnail?.transition?`transform ${props.Thumbnail.transition.duration||.3}s ${props.Thumbnail.transition.ease||\"ease-in-out\"}`:\"none\"}}):// Only show placeholder in canvas mode\ntypeof window!==\"undefined\"&&window.location.hostname.includes(\"framercanvas.com\")&&/*#__PURE__*/_jsxs(\"svg\",{width:\"40%\",height:\"40%\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#9e9e9e\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"3\",width:\"18\",height:\"18\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"8.5\",cy:\"8.5\",r:\"1.5\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"21 15 16 10 5 21\"})]})})});}FC_ProductImageVariantStatic.defaultProps={image:\"\",imageNumber:1,type:\"Fill\",filterVariants:\"No\",filterMatch:\"Any\",thumbnailHeight:64,thumbnailWidth:64,backgroundColor:\"#f5f5f5\",borderRadius:0,padding:0,outsidePadding:0};addPropertyControls(FC_ProductImageVariantStatic,{shopifyProductID:{type:ControlType.String,title:\"Product ID\"},image:{type:ControlType.ResponsiveImage,title:\"Image\",description:\"Connect to CMS\"},imageNumber:{type:ControlType.Number,title:\"Image Number\",defaultValue:1,min:1,max:250,step:1,displayStepper:true},FilterVariants:{type:ControlType.Object,title:\"Visibility\",controls:{filterVariants:{type:ControlType.Enum,title:\"Visibility\",options:[\"Always\",\"If Active Variant\"],defaultValue:\"Always\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"*If Active Variant:* Hide this image if a variant is selected and the value is not found in the image’s Alt Text in CMS (from Shopify).\"},filterMatch:{type:ControlType.Enum,title:\"Match Rule\",options:[\"Any\",\"All\"],defaultValue:\"Any\",displaySegmentedControl:true,description:\"*Example:* If selected variant = 'Red' and 'Small'. \\n \\n *Any* → 'T Shirt (Red)' or 'T Shirt (Small)'shows. \\n \\n *All* → Only 'T Shirt (Red, Small)' shows.\",hidden:({filterVariants})=>filterVariants===\"Always\"}}},Thumbnail:{type:ControlType.Object,title:\"Thumbnail\",controls:{thumbnailMode:{type:ControlType.Enum,title:\"Thumbnail\",options:[\"Yes\",\"No\"],defaultValue:\"Yes\",displaySegmentedControl:true},clickAction:{type:ControlType.Enum,title:\"On Click\",options:[\"Tap Event\",\"Scroll Section\",\"None\"],defaultValue:\"Tap Event\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:({thumbnailMode})=>thumbnailMode===\"No\"},Hover:{type:ControlType.Object,title:\"Hover\",hidden:({thumbnailMode})=>thumbnailMode===\"No\",controls:{hoverBackgroundColor:{type:ControlType.Color,title:\"BG\",defaultValue:\"#f5f5f5\"},hoverBorder:{type:ControlType.Border,title:\"Border\",defaultValue:{borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderStyle:\"solid\",borderColor:\"transparent\"}},hoverOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:1,min:0,max:1,step:.01,displayStepper:true},hoverScale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.1,max:2,step:.01,displayStepper:true}}},Active:{type:ControlType.Object,title:\"Active\",hidden:({thumbnailMode})=>thumbnailMode===\"No\",controls:{activeBackgroundColor:{type:ControlType.Color,title:\"BG\",defaultValue:\"#f5f5f5\"},activeBorder:{type:ControlType.Border,title:\"Border\",defaultValue:{borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderStyle:\"solid\",borderColor:\"transparent\"}},activeOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:1,min:0,max:1,step:.01,displayStepper:true},activeScale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.1,max:2,step:.01,displayStepper:true}}},transition:{type:ControlType.Transition,title:\"Transition\",hidden:({thumbnailMode})=>thumbnailMode===\"No\"}}},Style:{type:ControlType.Object,title:\"Style\",controls:{type:{type:ControlType.Enum,title:\"Image\",options:[\"Fill\",\"Fit\"],defaultValue:\"Fill\",displaySegmentedControl:true},size:{type:ControlType.Enum,title:\"Size\",options:[\"Standard\",\"Advanced\"],defaultValue:\"Standard\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"Use Advanced when filtering active variants.\"},widthMode:{type:ControlType.Enum,title:\"Width\",options:[\"Fill\",\"Fit\",\"Fixed\"],defaultValue:\"Fixed\",hidden:({size})=>size===\"Standard\"},thumbnailWidth:{type:ControlType.Number,title:\"Width\",defaultValue:64,min:4,step:1,unit:\"px\",displayStepper:true,description:\"Set your component Width to Fit.\",hidden:({size,widthMode})=>size===\"Standard\"||widthMode===\"Fill\"||widthMode===\"Fit\"},heightMode:{type:ControlType.Enum,title:\"Height\",options:[\"Fill\",\"Fit\",\"Fixed\"],defaultValue:\"Fixed\",hidden:({size})=>size===\"Standard\"},thumbnailHeight:{type:ControlType.Number,title:\"Height\",defaultValue:64,min:4,step:1,unit:\"px\",displayStepper:true,description:\"Set your component Height to Fit.\",hidden:({size,heightMode})=>size===\"Standard\"||heightMode===\"Fill\"||heightMode===\"Fit\"},outsidePadding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:0,toggleKey:\"outsidePaddingPerSide\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"outsidePaddingTop\",\"outsidePaddingRight\",\"outsidePaddingBottom\",\"outsidePaddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,description:\"Use isolated padding instead of Gaps when filtering active variants.\"},borderRadius:{type:ControlType.FusedNumber,title:\"Radius\",defaultValue:0,toggleKey:\"radiusPerCorner\",toggleTitles:[\"All\",\"Corners\"],valueKeys:[\"radiusTopLeft\",\"radiusTopRight\",\"radiusBottomRight\",\"radiusBottomLeft\"],valueLabels:[\"TL\",\"TR\",\"BR\",\"BL\"],min:0},inactiveBackgroundColor:{type:ControlType.Color,title:\"BG\",defaultValue:\"#f5f5f5\",hidden:({thumbnailMode})=>thumbnailMode===\"No\"},inactiveBorder:{type:ControlType.Border,title:\"Border\",defaultValue:{borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderStyle:\"solid\",borderColor:\"transparent\"},hidden:({thumbnailMode})=>thumbnailMode===\"No\"},inactiveOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:1,min:0,max:1,step:.01,displayStepper:true,hidden:({thumbnailMode})=>thumbnailMode===\"No\"},inactiveScale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.1,max:2,step:.01,displayStepper:true,hidden:({thumbnailMode})=>thumbnailMode===\"No\"}}},triggerImageTap:{type:ControlType.EventHandler,title:\"triggerImageTap\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductImageVariantStatic\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductImageVariantThumbnail.map","/**\n * Initialization utilities for Framer Commerce\n * This file contains functions that should run when the application first loads\n */import{getUTMParameters,getSCARefParameters}from\"https://framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/398w6fPyag8B92ojouQr/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 and SCA ref parameters when the page loads\nif(typeof window!==\"undefined\"){// Initialize UTM parameter tracking\ngetUTMParameters();// Initialize SCA ref parameter tracking\ngetSCARefParameters();// Add a listener for history changes to capture tracking 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;getSCARefParameters()// Capture SCA ref parameters after navigation\n;};history.replaceState=function(){originalReplaceState.apply(this,arguments);getUTMParameters()// Capture UTM parameters after navigation\n;getSCARefParameters()// Capture SCA ref parameters after navigation\n;};// Also listen for popstate events (back/forward navigation)\nwindow.addEventListener(\"popstate\",()=>{getUTMParameters();getSCARefParameters();});}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\":{\"initializeStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"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,getProductMetafields}from\"https://framerusercontent.com/modules/yiRfl1JCGhIBUL31WVDk/wupS2XmBAHu1kBQNv9pi/mutations_v2.js\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{get}from\"lodash-es\";import{appendAllTrackingParamsToUrl}from\"https://framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/398w6fPyag8B92ojouQr/utmParams.js\";import{appendLanguageToUrl}from\"https://framerusercontent.com/modules/vC6fzbfO83MgBPIhn5zl/DUlbmWuOELzEUenVmv3G/locales.js\";import{useIsBrowser}from\"https://framerusercontent.com/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";import{trackFacebookPixelAddToCart,trackFacebookPixelInitiateCheckout,trackFacebookPixelViewContent}from\"https://framerusercontent.com/modules/6Zs9CjkPbKzHjoy8LK08/iqoIwmJw4hztafi4V4IV/Fb_pixel.js\";import{sanitizeChildrenRecursively}from\"https://framerusercontent.com/modules/Da0ApllLKQHSw8djEYKs/NKlmeTJYy3YIy3O2qsS9/cloning.js\";// Import initialization utility to ensure UTM tracking is set up\nimport\"https://framerusercontent.com/modules/FXrY3V9ZYVL8aziafDQn/HIuMDRrKIIcsJe65kZwo/initialize.js\";/**\n * @framerDisableUnlink\n */export default function FC_ProductPurchaseButton(props){const{shopifyProductID,available,OutOfStock,SelectVariant,LoadingState,maxQuantity,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[hasInitialized,setHasInitialized]=useState(false);const[countryCode,setCountryCode]=useState();const isBrowser=useIsBrowser();// Additional state for cart functionality — read persisted state to\n// avoid flickering to 'one-time' on Framer component-variant remounts\nconst[planSelected,setPlanSelected]=useState(()=>{if(typeof window!==\"undefined\"){const persisted=window.__fc_activeSubscription?.[shopifyProductID];if(persisted?.subscriptionId)return persisted.subscriptionId;}return\"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);const[maxQuantityReached,setMaxQuantityReached]=useState(false);const[orderMax,setOrderMax]=useState(0);// 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// )\nif(event.detail.shopifyProductID!==`gid://shopify/Product/${props.shopifyProductID}`){return;}setAutoSelectFirst(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\");});}// Check for persisted subscription state that may have been set\n// before this component mounted (solves race on page load when\n// default is \"Subscribe\")\nconst persisted=window.__fc_activeSubscription?.[shopifyProductID];if(persisted?.subscriptionId){setPlanSelected(persisted.subscriptionId);}const handleSubscriptionChange=event=>{// Only apply subscription selection for this specific product\nif(event.detail?.productId&&event.detail.productId!==shopifyProductID)return;setPlanSelected(event.detail.subscriptionId);};document.addEventListener(\"subscription__selection-sync\",handleSubscriptionChange);return()=>document.removeEventListener(\"subscription__selection-sync\",handleSubscriptionChange);},[isBrowser,shopifyProductID]);// Add this at the top level with other event handlers\nconst handleQuantityChange=event=>{// console.log(\"Quantity change event received:\", event.detail)\nsetProductQuantity(event.detail);};useEffect(()=>{if(isBrowser){window.addEventListener(\"FcQuantitySelectorchanges\",handleQuantityChange);// Cleanup\nreturn()=>{window.removeEventListener(\"FcQuantitySelectorchanges\",handleQuantityChange);};}},[isBrowser]);// Separate effect for ViewContent tracking - more reliable\nuseEffect(()=>{if(!isBrowser||!product||viewContentFired.current)return;// Wait for either activeVariant or at least one variant to be available\nconst hasVariantData=activeVariant||product.variants?.edges?.length>0;if(hasVariantData){// console.log('[ViewContent] Firing ViewContent event for product:', product.title);\ntrackFacebookPixelViewContent({variant:activeVariant||product.variants?.edges?.[0]?.node,product:product,currency:activeVariant?.price?.currencyCode||product.variants?.edges?.[0]?.node?.price?.currencyCode||\"USD\"});viewContentFired.current=true;}},[isBrowser,product,activeVariant]);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=>{// Early return if we already have this exact product loaded\nif(product&&product!==\"404\"){const currentProductId=product?.id;const incomingProductId=_matchingProduct?.node?.id;if(currentProductId&&incomingProductId&&currentProductId===incomingProductId){// console.log(\n//   '[handleProductData] Product already loaded, skipping update'\n// );\nreturn;}}// console.log(\n//   '[handleProductData] Processing product update',\n//   product,\n//   _matchingProduct\n// );\nif(_matchingProduct){const productNode=_matchingProduct.node;setProduct(productNode||\"404\");// Fetch order_max if we have a product handle\nif(productNode?.handle){fetchOrderMax(productNode.handle);}// 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);// If nothing is available, do not prompt for variant selection\nif(!anyVariantAvailable){setNeedsVariantSelection(false);}}else{setProduct(\"404\");setIsInStock(false);}};// Check if we already have product data available\nif(window.shopXtools?.products&&Array.isArray(window.shopXtools.products)&&!product){const _matchingProduct=window.shopXtools.products.find(({node})=>node.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){// console.log(\n//   '[PURCHASE BUTTON] Found matching product on mount, loading it'\n// );\nhandleProductData(_matchingProduct);}else{// console.log(\n//   '[PURCHASE BUTTON] No matching product found in existing products'\n// );\n}}const productsReadyHandler=()=>{if(window?.shopXtools?.products){const matchingProduct=window.shopXtools.products.find(({node:product})=>product.id===`gid://shopify/Product/${shopifyProductID}`);// console.log(\n//   '[productsReadyHandler] Found matching product:',\n//   !!matchingProduct\n// );\n// Only update if we don't already have this product data loaded\nif(!product||product===\"404\"){// console.log(\n//   '[productsReadyHandler] No product loaded yet, calling handleProductData'\n// );\nhandleProductData(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.productId!==`gid://shopify/Product/${shopifyProductID}`){return;}if(e.detail){// Normalize completeness: some dispatchers may omit isCompleteVariant.\nconst productOptions=get(product,\"options\",[])||[];const selectedArray=Array.isArray(e.detail.selectedOptions)?e.detail.selectedOptions:[];const selectedNames=new Set(selectedArray.map(o=>o?.name).filter(Boolean));const isCompleteFromNames=productOptions.length>0&&productOptions.every(opt=>selectedNames.has(opt.name));const isComplete=e.detail.isCompleteVariant===true||isCompleteFromNames;// If selection is partial, DO NOT treat it as an active variant for purchasing\nif(!isComplete){setIsVariantManuallySelected(true);setActiveVariant(null);window.__fc_activeVariantId=undefined;setNeedsVariantSelection(true);return;}// Complete selection – safe to treat as active variant\nsetActiveVariant(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// )\nconst cartQuantity=getCurrentCartQuantity(e.detail.id);// console.log(\"variantChangeHandler: cartQuantity\", cartQuantity)\n// if there's a cart item, it can reach the stock limit only if variant's quantityAvailable > 0\n// if variant's quantityAvailable = 0, it's out of stock, and we don't show 'limit reached' state\n// if variant's quantityAvailable < 0, continue selling when out of stock is enabled, so limit cannot ever be reached\nif(cartQuantity===e.detail.quantityAvailable&&e.detail.quantityAvailable>0){// console.log(\"variantChangeHandler: max reached\")\nsetMaxQuantityReached(true);}else{setMaxQuantityReached(false);}// When autoSelectFirst is false, we need to make sure all variants are selected\n// before changing the button state\n// Only mark selection as complete when all options are selected\nif(isComplete){setNeedsVariantSelection(false);}else{setNeedsVariantSelection(true);}}};document.addEventListener(\"data__products-ready\",productsReadyHandler);document.addEventListener(\"product__active-variant__changed\",variantChangeHandler);return()=>{document.removeEventListener(\"data__products-ready\",productsReadyHandler);document.removeEventListener(\"product__active-variant__changed\",variantChangeHandler);};},[shopifyProductID,shopifyProductVariantId,activeVariant,isBrowser,calculateTotalInventory,autoSelectFirst,product]);// 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]);// Cart functionality\n// 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;};// Fetch order_max from product metafields\nconst fetchOrderMax=useCallback(async productHandle=>{if(!productHandle)return;try{const metafieldsResponse=await window.shopXtools?.handleCartMutation?.(getProductMetafields,{handle:productHandle});const max=parseInt(metafieldsResponse?.product?.metafield_order_max?.value,10);if(!isNaN(max)&&max>0){setOrderMax(max);// console.log(\"Fetched order max\", max)\n}else{setOrderMax(0);}}catch(error){console.warn(\"Could not fetch product metafields for order_max:\",error);setOrderMax(0);}},[]);// Modify the getCurrentCartQuantity function to calculate per-product quantity\nconst getCurrentCartQuantity=useCallback(variantId=>{// if (!cartExistingData?.lines?.edges) {\n//     return 0\n// }\nconst liveCart=window?.shopXtools?.cart;setCartExistingData(liveCart);const liveEdges=liveCart?.lines?.edges;if(!liveEdges)return 0;// If we have a product handle, calculate per-product quantity\nif(product?.handle&&orderMax>0){const productVariantIds=get(product,\"variants.edges\",[]).map(({node})=>node.id);const totalQuantity=liveEdges.reduce((total,{node})=>{if(productVariantIds.includes(node.merchandise.id)){return total+node.quantity;}return total;},0);// console.log(\"getCurrentCartQuantity (per-product):\", totalQuantity)\nreturn totalQuantity;}// Fallback to variant-specific quantity\nconst quantity=liveEdges.reduce((total,{node})=>{if(node.merchandise.id===variantId){return total+node.quantity;}return total;},0);// console.log(\"getCurrentCartQuantity (per-variant):\", quantity)\nreturn quantity;},[product,orderMax]);const handleAddToCart=async()=>{try{if(!isBrowser)return;const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);const currentCartQuantity=getCurrentCartQuantity(variantId);// console.log(\"currentCartQuantity\", currentCartQuantity)\n// Check order_max from product metafields\nif(orderMax>0){// console.log(\"orderMax > 0\", orderMax)\n// Check if we've already reached the product limit\nif(currentCartQuantity>=orderMax){// console.log(\"currentCartQuantity >= orderMax: Max reached\")\nsetMaxQuantityReached(true);return;}}// Check quantityAvailable when orderMax is 0 or not set\nif(orderMax===0&&activeVariant&&activeVariant.quantityAvailable>0){// console.log(\"orderMax is 0, checking quantityAvailable\")\n// console.log(\"activeVariant.quantityAvailable\", activeVariant.quantityAvailable)\n// Check if we've already reached the available quantity\nif(currentCartQuantity>=activeVariant.quantityAvailable){// console.log(\"currentCartQuantity >= quantityAvailable: Max reached\")\nsetMaxQuantityReached(true);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()];// console.log(\"handleAddToCart lines:\", lines)\n// 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;setCartExistingData(window.shopXtools.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=cleanShopifyId(activeVariant?.id);const item_name=product?.title||\"\";// const item_variant = activeVariant?.selectedOptions\n//     .map(opt => `${opt.name} ${opt.value}`)\n//     .join(\" / \") || null\nconst item_variant=activeVariant?.selectedOptions?activeVariant.selectedOptions.map(opt=>`${opt.name} ${opt.value}`).join(\" / \")||null:\"\";const price=parseFloat(activeVariant?.price?.amount||\"0\");// Google Analytics tracking (add_to_cart)\nif(item_id&&item_name&&item_variant&&price>0){const payload={currency,value,items:[{item_id,item_name,item_variant,price,item_brand:product?.vendor||null,item_category:product?.productType||null,quantity:productQuantity,// TagHound compatibility\nSKU:item_id,\"Item Name\":item_name}]};// console.log('[FC_ProductPurchaseButton ANALYTICS] About to fire add_to_cart with payload:', payload);\nif(typeof window.fcTrackGAEvent===\"function\"){window.fcTrackGAEvent(\"add_to_cart\",payload);// console.log('[FC_ProductPurchaseButton ANALYTICS] Fired add_to_cart:', payload.items[0]);\n}}else{console.warn(\"❌ Skipping add_to_cart: missing item data\",{item_id,item_name,item_variant,price,value});}// Meta Pixel tracking\ntrackFacebookPixelAddToCart({variant:activeVariant,product:product,quantity:productQuantity,currency:currency});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;// console.log(\"handleAddToCart cart:\", window.shopXtools.cart)\nsetCartExistingData(window.shopXtools.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=cleanShopifyId(activeVariant?.id);const item_name=product?.title||\"\";// const item_variant = activeVariant?.selectedOptions\n//     .map(opt => `${opt.name} ${opt.value}`)\n//     .join(\" / \") || null\nconst item_variant=activeVariant?.selectedOptions?activeVariant.selectedOptions.map(opt=>`${opt.name} ${opt.value}`).join(\" / \")||null:\"\";const price=parseFloat(activeVariant?.price?.amount||\"0\");// Google Analytics tracking (add_to_cart)\nif(item_id&&item_name&&item_variant&&price>0){const payload={currency,value,items:[{item_id,item_name,item_variant,price,item_brand:product?.vendor||null,item_category:product?.productType||null,quantity:productQuantity,// TagHound compatibility\nSKU:item_id,\"Item Name\":item_name}]};// console.log('[FC_ProductPurchaseButton ANALYTICS] About to fire add_to_cart with payload:', payload);\nif(typeof window.fcTrackGAEvent===\"function\"){window.fcTrackGAEvent(\"add_to_cart\",payload);// console.log('[FC_ProductPurchaseButton ANALYTICS] Fired add_to_cart:', payload.items[0]);\n}}else{console.warn(\"❌ Skipping add_to_cart: missing item data\",{item_id,item_name,item_variant,price,value});}// Meta Pixel tracking\ntrackFacebookPixelAddToCart({variant:activeVariant,product:product,quantity:productQuantity,currency:currency});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=cleanShopifyId(activeVariant?.id);const item_name=product?.title||\"\";// const item_variant = activeVariant?.selectedOptions\n//     .map(opt => `${opt.name} ${opt.value}`)\n//     .join(\" / \") || null\nconst item_variant=activeVariant?.selectedOptions?activeVariant.selectedOptions.map(opt=>`${opt.name} ${opt.value}`).join(\" / \")||null:\"\";const price=parseFloat(activeVariant?.price?.amount||\"0\");// Google Analytics tracking (begin_checkout)\nif(item_id&&item_name&&item_variant&&price>0){const payload={currency,value,items:[{item_id,item_name,item_variant,price,item_brand:product?.vendor||null,item_category:product?.productType||null,quantity:productQuantity,// TagHound compatibility\nSKU:item_id,\"Item Name\":item_name}]};// console.log('[FC_ProductPurchaseButton ANALYTICS] About to fire begin_checkout with payload:', payload);\nif(typeof window.fcTrackGAEvent===\"function\"){window.fcTrackGAEvent(\"begin_checkout\",payload);// console.log('[FC_ProductPurchaseButton ANALYTICS] Fired begin_checkout:', payload.items[0]);\n}}else{console.warn(\"❌ Skipping begin_checkout: missing item data\",{item_id,item_name,item_variant,price,value});}// Meta Pixel tracking\ntrackFacebookPixelInitiateCheckout({variant:activeVariant,product:product,quantity:productQuantity,currency:currency,useBeacon:true});finalCheckoutUrl=appendAllTrackingParamsToUrl(finalCheckoutUrl);finalCheckoutUrl=appendLanguageToUrl(finalCheckoutUrl);window.location.assign(finalCheckoutUrl);}}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\"}));}};// Update loading state when product data is received\nuseEffect(()=>{if(product){setIsLoading(false);}},[product]);// Initialize hasInitialized\nuseEffect(()=>{if(!hasInitialized&&(product||shopifyProductID)){// && (product || shopifyProductID) part ensures the button is rendered in Framer preview\n// Small delay to ensure we have all the necessary data\nconst timer=setTimeout(()=>{setHasInitialized(true);},50);return()=>clearTimeout(timer);}},[product]);// Handle loading state for canvas preview\nconst isDesignOrPreview=RenderTarget.current()===RenderTarget.canvas;let content=null;if(isDesignOrPreview){content=available?.[0]||null// Always show available state in canvas\n;}else if(!hasInitialized){content=null;}else if(maxQuantityReached&&maxQuantity?.[0]){content=maxQuantity?.[0]||null;}else if(!isInStock&&!activeVariant?.availableForSale||activeVariant&&!isVariantAvailable(activeVariant)||product&&!get(product,\"variants.edges\",[]).some(({node})=>isVariantAvailable(node))||props.required&&orderFieldError){// Prioritize Out of Stock over prompting variant selection\ncontent=OutOfStock?.[0]||null;}else if(needsVariantSelection){content=SelectVariant?.[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(()=>{const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);// Always read from live cart to avoid stale state after updates\nconst currentQuantity=getCurrentCartQuantity(variantId);// console.log(\"currentQuantity\", currentQuantity)\nlet shouldBeAtMax=false;// Check orderMax first (takes precedence)\nif(orderMax>0){shouldBeAtMax=currentQuantity>=orderMax;// console.log(\"orderMax check - shouldBeAtMax:\", shouldBeAtMax)\n}else if(orderMax===0&&activeVariant){if(activeVariant.quantityAvailable>0&&activeVariant.availableForSale){// If no orderMax, check quantityAvailable\nshouldBeAtMax=currentQuantity>=activeVariant.quantityAvailable;// console.log(\"quantityAvailable check - shouldBeAtMax:\", shouldBeAtMax)\n}}if(shouldBeAtMax!==maxQuantityReached){// console.log(\"shouldBeAtMax !== maxQuantityReached\", maxQuantityReached, shouldBeAtMax)\nsetMaxQuantityReached(shouldBeAtMax);}},[orderMax,activeVariant,props.shopifyProductVariantId,maxQuantityReached,getCurrentCartQuantity]);// Add this effect near the other useEffect hooks\nuseEffect(()=>{if(orderMax>0){window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:orderMax}}));}},[orderMax,props.shopifyProductID]);// Add this effect to handle cart updates\nuseEffect(()=>{const variantId=activeVariant?.id||(props.shopifyProductVariantId?`gid://shopify/ProductVariant/${props.shopifyProductVariantId}`:null);const currentInCart=getCurrentCartQuantity(variantId);if(orderMax>0&&cartExistingData){// Handle orderMax scenario\nconst remainingAllowed=Math.max(0,orderMax-currentInCart);window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:remainingAllowed}}));// console.log(\"sending setMaxQuantity, orderMAx > 0 (cartExistingData)\", {\n//     detail: {\n//         productId: props.shopifyProductID,\n//         maxQuantity: remainingAllowed,\n//     },\n// })\n}else if(orderMax===0&&activeVariant&&cartExistingData){// console.log(\"cartExistingData, currentInCart\", cartExistingData, currentInCart)\nif(activeVariant.quantityAvailable>0&&activeVariant.availableForSale){// Handle quantityAvailable scenario\nconst remainingAllowed=Math.max(0,activeVariant.quantityAvailable-currentInCart);window.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:remainingAllowed}}));// console.log(\"sending setMaxQuantity,  orderMAx = 0 (cartExistingData)\", {\n//     detail: {\n//         productId: props.shopifyProductID,\n//         maxQuantity: remainingAllowed,\n//     },\n// })\n}}},[cartExistingData,orderMax,activeVariant,props.shopifyProductVariantId,getCurrentCartQuantity,productQuantity]);// Effect to handle general cart updates\nuseEffect(()=>{const handleCartUpdate=()=>{// console.log(\"handleCartUpdate: Cart updated, refreshing purchase button state\")\n// Force recalculation of maxQuantityReached state\nconst variantId=activeVariant?.id||null;const currentQuantity=getCurrentCartQuantity(variantId);if(orderMax>0){const shouldBeAtMax=currentQuantity>=orderMax;setMaxQuantityReached(shouldBeAtMax);// console.log(\"handleCartUpdate: orderMax > 0, shouldBeAtMax:\", shouldBeAtMax)\n}else if(orderMax===0&&activeVariant&&activeVariant.quantityAvailable>0){const shouldBeAtMax=currentQuantity>=activeVariant.quantityAvailable;setMaxQuantityReached(shouldBeAtMax);// console.log(\"handleCartUpdate: orderMax = 0, shouldBeAtMax:\", shouldBeAtMax)\n}else{setMaxQuantityReached(false);// console.log(\"handleCartUpdate: resetting maxQuantityReached to false\")\n}const orderMaxRemainingAllowed=Math.max(0,orderMax-currentQuantity);// console.log(\"handleCartUpdate: orderMaxRemainingAllowed\", orderMaxRemainingAllowed)\nconst variantQnt=activeVariant?.quantityAvailable<=0&&activeVariant?.availableForSale?100:activeVariant?.quantityAvailable;// console.log(\"handleCartUpdate: variantQnt\", variantQnt)\nconst remainingAllowed=Math.max(0,variantQnt-currentQuantity);// console.log(\"handleCartUpdate: remainingAllowed\", remainingAllowed)\nwindow.dispatchEvent(new CustomEvent(\"setMaxQuantity\",{detail:{productId:props.shopifyProductID,maxQuantity:orderMax>0?orderMaxRemainingAllowed:remainingAllowed}}));// console.log(\"handleCartUpdate: sending setMaxQuantity\", {\n//     detail: {\n//         productId: props.shopifyProductID,\n//         maxQuantity: orderMax > 0 ? orderMaxRemainingAllowed : remainingAllowed,\n//     },\n// })\n};window.addEventListener(\"shopXtools-cart-update\",handleCartUpdate);return()=>window.removeEventListener(\"shopXtools-cart-update\",handleCartUpdate);},[activeVariant,orderMax,getCurrentCartQuantity,props.shopifyProductID]);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]);const viewItemTrackedRef=useRef();const pageViewTrackedRef=useRef(false);// Single consolidated analytics effect\nuseEffect(()=>{if(!product)return;// Helper to extract brand and category if available\nconst item_brand=product.vendor||null;const item_category=product.productType||null;// Always fire page_view on initial load\nif(!pageViewTrackedRef.current){const productId=cleanShopifyId(product.id);const productName=product.title;const defaultVariant=get(product,\"variants.edges\",[])[0]?.node;let payload;if(defaultVariant){// Product with variants\npayload={currency:defaultVariant.price?.currencyCode||\"USD\",value:parseFloat(defaultVariant.price?.amount||\"0\"),items:[{item_id:cleanShopifyId(defaultVariant.id),item_name:productName,item_variant:defaultVariant.title,price:parseFloat(defaultVariant.price?.amount||\"0\"),item_brand,item_category,quantity:1,// TagHound compatibility\nSKU:cleanShopifyId(defaultVariant.id),\"Item Name\":productName}]};}else{// Product with no variants\npayload={currency:product.priceRange?.minVariantPrice?.currencyCode||\"USD\",value:parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\"),items:[{item_id:productId,item_name:productName,price:parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\"),item_brand,item_category,quantity:1,// TagHound compatibility\nSKU:productId,\"Item Name\":productName}]};}// We do not fire GA4 page_view manually; GA4 config handles it. Keep only view_item below.\npageViewTrackedRef.current=true;}// Fire view_item when variant is selected\nif(activeVariant&&product?.title){const item_id=cleanShopifyId(activeVariant.id);const item_name=product.title;// console.log(\"activeVariant\", activeVariant)\nconst item_variant=activeVariant?.selectedOptions?activeVariant.selectedOptions.map(opt=>`${opt.name} ${opt.value}`).join(\" / \")||null:\"\";const price=parseFloat(activeVariant.price?.amount||\"0\");const currency=activeVariant.price?.currencyCode||\"USD\";const value=price;// Only fire if all data is present and not already tracked for this variant\nif(item_id&&item_name&&item_variant&&price>0&&viewItemTrackedRef.current!==item_id){const payload={currency,value,items:[{item_id,item_name,item_variant,price,item_brand,item_category,quantity:1,// TagHound compatibility\nSKU:item_id,\"Item Name\":item_name}]};if(payload.items&&payload.items.length>0&&payload.items[0].item_id&&payload.items[0].item_name){window.fcTrackGAEvent&&window.fcTrackGAEvent(\"view_item\",payload);viewItemTrackedRef.current=item_id;}else{// Skipping view_item - invalid payload\n}}}},[product,activeVariant]);useEffect(()=>{// On state transition, blur any currently focused button that is about to be hidden\nconst focused=document.activeElement;if(focused&&focused.closest(\".fc-purchase-button-container\")){focused.blur();}},[content]);// Determine canvas preview content\nlet canvasContent=null;if(isDesignOrPreview){// If \"Available\" (Add to Cart) is connected, it dominates\nif(available?.[0]){canvasContent=available[0];}else if(SelectVariant?.[0]){canvasContent=SelectVariant[0];}else if(OutOfStock?.[0]){canvasContent=OutOfStock[0];}else if(maxQuantity?.[0]){canvasContent=maxQuantity[0];}else if(LoadingState?.[0]){canvasContent=LoadingState[0];}}// Check if we need to show \"Connect Instance\" in canvas\nconst hasAnyState=available?.[0]||SelectVariant?.[0]||OutOfStock?.[0]||maxQuantity?.[0]||LoadingState?.[0];if(isDesignOrPreview&&!hasAnyState){return /*#__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 href=typeof window!==\"undefined\"?window.location.href:\"\";const isPreview=href.includes(\"framercanvas.com\")// projects in preview always run under the internal domain framercanvas.com\n;// Sanitize content instances before cloning\nconst sanitizedCanvasContent=canvasContent?sanitizeChildrenRecursively(canvasContent):null;const sanitizedLoadingState=LoadingState?.[0]?sanitizeChildrenRecursively(LoadingState[0]):null;const sanitizedContent=content?sanitizeChildrenRecursively(content):null;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            `}),isDesignOrPreview?sanitizedCanvasContent&&/*#__PURE__*/cloneElement(sanitizedCanvasContent,{style:{...canvasContent?.props?.style||{},width:\"100%\",height:\"100%\",cursor:\"pointer\",outline:\"none\"},onClick:handleClick,role:\"button\",\"aria-label\":canvasContent===available?.[0]?props.BuyNowATC?\"Buy now\":\"Add to cart\":canvasContent===SelectVariant?.[0]?\"Select variant\":canvasContent===OutOfStock?.[0]?\"Out of stock\":canvasContent===maxQuantity?.[0]?\"Max quantity reached\":\"Loading\"}):isLoading&&!props.skipLoading&&sanitizedLoadingState&&!isPreview?/*#__PURE__*/cloneElement(sanitizedLoadingState,{style:{...LoadingState[0].props?.style||{},width:\"100%\",height:\"100%\",outline:\"none\"},role:\"status\",\"aria-label\":`Loading ${props.BuyNowATC?\"buy now\":\"add to cart\"} button`,\"aria-live\":\"polite\",tabIndex:-1}):sanitizedContent?/*#__PURE__*/cloneElement(sanitizedContent,{style:{...content?.props?.style||{},width:\"100%\",height:\"100%\",cursor:canAddToCart?\"pointer\":\"not-allowed\",outline:\"none\"},onClick:canAddToCart?handleClick:undefined,onKeyDown:canAddToCart?e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();handleClick(e);}}:undefined,role:\"button\",\"aria-disabled\":!canAddToCart,\"aria-label\":content===available?.[0]?props.BuyNowATC?\"Buy now\":\"Add to cart\":content===SelectVariant?.[0]?\"Select variant\":content===OutOfStock?.[0]?\"Out of stock\":\"Max quantity reached\",tabIndex:hasInitialized?0:-1}):null]});}addPropertyControls(FC_ProductPurchaseButton,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS (required)\"},LoadingState:{type:ControlType.ComponentInstance,title:\"Loading\",hidden:props=>props.skipLoading,description:\"Display when product/variant is determining state to show.\"},available:{type:ControlType.ComponentInstance,title:\"Available\",description:\"Display when product/variant is available (Add to Cart or Buy Now).\"},SelectVariant:{type:ControlType.ComponentInstance,title:\"Select Variant\",description:\"Display when product/variant requires a variant selection.\"},OutOfStock:{type:ControlType.ComponentInstance,title:\"Out of Stock\",description:\"Display when product/variant is out of stock.\"},maxQuantity:{type:ControlType.ComponentInstance,title:\"Limit Reached\",description:\"Display when maximum cart quantity is reached.  \\n\\n –––– \\n\\n Connect each state to button component off-page. \\n\\n If you detatch the button component, you'll need to reconnect the states.\"},BuyNowATC:{title:\"Buy Now\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},skipLoading:{title:\"Loading State\",type:ControlType.Boolean,enabledTitle:\"No\",disabledTitle:\"Yes\",defaultValue:false},openCart:{title:\"Trigger Cart\",description:\"If button is inside the cart, select No to keep the cart open.\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:props=>props.BuyNowATC},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\"}}},shopifyProductVariantId:{type:ControlType.String,title:\"Variant ID\",description:\"Advanced: Manually set a specific product variant ID (optional).\"}});// Utility to clean Shopify GID to just the numeric ID\nconst cleanShopifyId=gid=>gid?.split(\"/\").pop();\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","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/*\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"],"mappings":"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"}