{"version":3,"file":"Buy_now_button.Cbluo08e.mjs","names":["useState","selectedVariantId"],"sources":["https:/framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/p64YSWJTfFgSyrzhIrVN/Shared_button_props.js","https:/framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/EXWRVRbrz8jUk7QspAhR/Preset_button.js","https:/framerusercontent.com/modules/MQu1tryMb63mlLwcSk10/PzJuU86UeyZeSpmgTPUR/Buy_now_button.js"],"sourcesContent":["import{ControlType}from\"framer\";import{SHARED_COLORS,SHARED_STYLES}from\"https://framerusercontent.com/modules/Nrs4jz2AAEOfEZRQEQij/7Ao2SBt1Ssf683HHXgzl/Shared_styles.js\";import{useInventory}from\"https://framerusercontent.com/modules/DW1wzS65glja20YJJb0w/MsyWzNucLewxymKH7z0r/Use_inventory.js\";import{extractVariantId}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/oWpbtfeZjvritjXviKiH/Shopify_utils.js\";import{isOnFramerCanvasFn,useIsInFramerPreview}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";// ------------------------------------------------------------ //\n// DEFAULT VALUES\n// ------------------------------------------------------------ //\nexport const PresetPrimaryButtonStyleDefaultValues={presetButtonStyle:{alignItems:\"center\",justifyContent:\"center\",gap:8,padding:SHARED_STYLES.buttonPadding,border:{borderWidth:0,borderStyle:\"solid\",borderColor:SHARED_COLORS.foregroundMuted},borderRadius:SHARED_STYLES.borderRadius,textColor:SHARED_COLORS.background,backgroundColor:SHARED_COLORS.foreground,shadow:undefined,hover:{textColor:SHARED_COLORS.backgroundHover,backgroundColor:SHARED_COLORS.foregroundHover,shadow:undefined,border:{borderWidth:0,borderStyle:\"solid\",borderColor:SHARED_COLORS.foregroundMuted}},tapScale:.98}};export const PresetSecondaryButtonStyleDefaultValues={presetButtonStyle:{...PresetPrimaryButtonStyleDefaultValues.presetButtonStyle,backgroundColor:SHARED_COLORS.background,textColor:SHARED_COLORS.foreground,hover:{...PresetPrimaryButtonStyleDefaultValues.presetButtonStyle.hover,backgroundColor:SHARED_COLORS.backgroundHover,textColor:SHARED_COLORS.foreground}}};export const OUT_OF_STOCK_STYLE_DEFAULT_VALUES={text:\"Out of Stock\",textColor:SHARED_COLORS.background,backgroundColor:SHARED_COLORS.foregroundMuted,border:{borderWidth:0,borderStyle:\"solid\",borderColor:SHARED_COLORS.foregroundMuted},opacity:.7};export const PresetPrimaryButtonDisabledStyleDefaultValues={disabledStyle:{alignItems:\"center\",justifyContent:\"center\",gap:8,padding:SHARED_STYLES.buttonPadding,border:{borderWidth:0,borderStyle:\"solid\",borderColor:SHARED_COLORS.foregroundMuted},borderRadius:SHARED_STYLES.borderRadius,textColor:SHARED_COLORS.foregroundMuted,backgroundColor:SHARED_COLORS.backgroundMuted,shadow:undefined,tapScale:1}};// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\nexport const PresetPrimaryButtonStyleControls={presetButtonStyle:{title:\"🎨 Styling\",type:ControlType.Object,controls:{alignItems:{title:\"Align\",type:ControlType.Enum,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.alignItems,options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],optionIcons:[\"align-bottom\",\"align-middle\",\"align-top\"],displaySegmentedControl:true},justifyContent:{title:\"Distribute\",type:ControlType.Enum,options:[\"center\",\"start\",\"end\",\"space-between\"],optionTitles:[\"Center\",\"Start\",\"End\",\"Space Between\"],defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.justifyContent},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.gap,unit:\"px\"},padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\",defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.padding},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:(PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.border).borderWidth,borderStyle:(PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.border).borderStyle,borderColor:(PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.border).borderColor}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.borderRadius},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.backgroundColor},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.shadow},hover:{title:\"Hover\",type:ControlType.Object,controls:{textColor:{title:\"Text\",type:ControlType.Color,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.hover?.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.hover?.backgroundColor},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.hover?.shadow},border:{title:\"Border\",// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.hover?.border}},buttonTitle:\"Style\"},tapScale:{title:\"Tap Scale\",type:ControlType.Number,defaultValue:PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.tapScale,min:0,max:1,step:.01},font:{title:\"Font\",type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\",hidden:props=>props.buttonType===\"custom\"}},hidden:props=>props.buttonType===\"custom\"}};export const PresetPrimaryButtonDisabledStyleControls={disabledStyle:{title:\"🎨 Disabled Styling\",type:ControlType.Object,controls:{alignItems:{title:\"Align\",type:ControlType.Enum,defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.alignItems,options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],optionIcons:[\"align-bottom\",\"align-middle\",\"align-top\"],displaySegmentedControl:true},justifyContent:{title:\"Distribute\",type:ControlType.Enum,options:[\"center\",\"start\",\"end\",\"space-between\"],optionTitles:[\"Center\",\"Start\",\"End\",\"Space Between\"],defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.justifyContent},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.gap,unit:\"px\"},padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\",defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.padding},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:(PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.border).borderWidth,borderStyle:(PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.border).borderStyle,borderColor:(PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.border).borderColor}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.borderRadius},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.backgroundColor},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.shadow},tapScale:{title:\"Tap Scale\",type:ControlType.Number,defaultValue:PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle?.tapScale,min:0,max:1,step:.01},font:{title:\"Font\",type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\",hidden:props=>props.buttonType===\"custom\"}},hidden:props=>props.buttonType===\"custom\"}};export const PresetSecondaryButtonStyleControls={presetButtonStyle:{title:\"🎨 Styling\",type:ControlType.Object,controls:{alignItems:{title:\"Align\",type:ControlType.Enum,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.alignItems,options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],optionIcons:[\"align-bottom\",\"align-middle\",\"align-top\"],displaySegmentedControl:true},justifyContent:{title:\"Distribute\",type:ControlType.Enum,options:[\"center\",\"start\",\"end\",\"space-between\"],optionTitles:[\"Center\",\"Start\",\"End\",\"Space Between\"],defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.justifyContent},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.gap,unit:\"px\"},padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.padding},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderWidth,borderStyle:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderStyle,borderColor:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderColor}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.borderRadius},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.backgroundColor},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.shadow},hover:{title:\"Hover\",type:ControlType.Object,controls:{textColor:{title:\"Text\",type:ControlType.Color,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.backgroundColor},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.shadow},border:{title:\"Border\",// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.border}},buttonTitle:\"Style\"},tapScale:{title:\"Tap Scale\",type:ControlType.Number,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.tapScale,min:0,max:1,step:.01},font:{title:\"Font\",type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\",hidden:props=>props.buttonType===\"custom\"}},hidden:props=>props.buttonType===\"custom\"}};export const PresetButtonContentControls={text:{title:\"Text\",type:ControlType.String,defaultValue:\"Button\",hidden:props=>props.buttonType===\"custom\"},leftIcon:{title:\"Left Icon\",type:ControlType.ComponentInstance,hidden:props=>props.buttonType===\"custom\"},rightIcon:{title:\"Right Icon\",type:ControlType.ComponentInstance,hidden:props=>props.buttonType===\"custom\"}};export const CustomButtonControls={buttonType:{title:\"Button Type\",type:ControlType.Enum,options:[\"preset\",\"custom\"],optionTitles:[\"Preset\",\"Custom\"],displaySegmentedControl:true,defaultValue:\"preset\"},customButton:{title:\"Button\",type:ControlType.ComponentInstance,hidden:props=>props.buttonType===\"preset\"},customButtonSize:{title:\"Button Size\",type:ControlType.Object,controls:{width:{type:ControlType.Enum,title:\"Width\",options:[\"default\",\"fill\"],optionTitles:[\"Default\",\"Fill\"],defaultValue:\"default\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},height:{type:ControlType.Enum,title:\"Height\",options:[\"default\",\"fill\"],optionTitles:[\"Default\",\"Fill\"],defaultValue:\"default\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"}},hidden:props=>props.buttonType===\"preset\"}};export const OutOfStockStyleControls={outOfStockStyle:{title:\"Out of Stock Style\",type:ControlType.Object,controls:{text:{title:\"Text\",type:ControlType.String,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.text},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.backgroundColor},border:{title:\"Border\",// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.border},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.shadow},opacity:{title:\"Opacity\",type:ControlType.Number,defaultValue:OUT_OF_STOCK_STYLE_DEFAULT_VALUES.opacity,min:0,max:1,step:.01}},hidden:props=>props.buttonType===\"custom\"}};export const MarketButtonStylingActiveControls={stylingActive:{title:\"🎨 Styling Selected\",type:ControlType.Object,controls:{alignItems:{title:\"Align\",type:ControlType.Enum,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.alignItems,options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],optionIcons:[\"align-bottom\",\"align-middle\",\"align-top\"],displaySegmentedControl:true},justifyContent:{title:\"Distribute\",type:ControlType.Enum,options:[\"center\",\"start\",\"end\",\"space-between\"],optionTitles:[\"Center\",\"Start\",\"End\",\"Space Between\"],defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.justifyContent},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.gap,unit:\"px\"},padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.padding},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderWidth,borderStyle:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderStyle,borderColor:(PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.border).borderColor}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.borderRadius},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:SHARED_COLORS.background},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:SHARED_COLORS.primary},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.shadow},hover:{title:\"Hover\",type:ControlType.Object,controls:{textColor:{title:\"Text\",type:ControlType.Color,defaultValue:SHARED_COLORS.background},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:SHARED_COLORS.primary},shadow:{title:\"Shadow\",// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.shadow},border:{title:\"Border\",// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.hover?.border}},buttonTitle:\"Style\"},tapScale:{title:\"Tap Scale\",type:ControlType.Number,defaultValue:PresetSecondaryButtonStyleDefaultValues.presetButtonStyle?.tapScale,min:0,max:1,step:.01},font:{title:\"Font\",type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\",hidden:props=>props.buttonType===\"custom\"}},hidden:props=>props.buttonType===\"custom\"||!props.showWhenActive,description:\"Styling when the market is currently selected\"}};// ------------------------------------------------------------ //\n// UTILITY FUNCTION FOR OVERRIDING DEFAULTS\n// ------------------------------------------------------------ //\n/**\n * Deep clones property controls and overrides default values, hidden properties, and titles at specified paths\n * @param baseControls - The base property controls to clone\n * @param overrides - Object with dot-notation paths to override (e.g., 'presetButtonStyle.backgroundColor', 'controlName.hidden', 'controlName.title')\n * @returns New property controls with overridden defaults, hidden properties, and titles\n */export function overrideControlDefaults(baseControls,overrides){// Deep clone the controls (preserving functions)\nconst deepClone=obj=>{if(obj===null||typeof obj!==\"object\")return obj;if(typeof obj===\"function\")return obj;if(Array.isArray(obj))return obj.map(deepClone);const cloned={};for(const key in obj){if(obj.hasOwnProperty(key)){cloned[key]=deepClone(obj[key]);}}return cloned;};const clonedControls=deepClone(baseControls);// Apply overrides\nObject.entries(overrides).forEach(([path,value])=>{const pathParts=path.split(\".\");let current=clonedControls;let controlLevel=null;let lastControlKey=null;// Navigate to the target control\nfor(let i=0;i<pathParts.length;i++){const part=pathParts[i];if(i===pathParts.length-1){// We've reached the final property\nif(part===\"defaultValue\"&&controlLevel&&lastControlKey){// Override defaultValue on a control (e.g., \"text.defaultValue\")\nconst control=controlLevel[lastControlKey];if(control&&typeof control===\"object\"&&control.defaultValue!==undefined){control.defaultValue=value;}}else if(part===\"hidden\"){// Override the hidden property of a control\nif(current[part]&&typeof current[part]===\"object\"&&current[part].controls){// This is an object control with nested controls - set hidden on the object control itself\ncurrent[part].hidden=value;}else if(controlLevel&&lastControlKey){// This is a property of a parent control (e.g., \"inputStyle.hidden\")\n// controlLevel should be the parent level containing the object control\nconst control=controlLevel[lastControlKey];if(control){control.hidden=value;}}else if(current[part]&&typeof current[part]===\"object\"){// Direct control\ncurrent[part].hidden=value;}}else if(part===\"title\"){// Override the title property of a control\nif(current[part]&&typeof current[part]===\"object\"&&current[part].controls){// This is an object control with nested controls - set title on the object control itself\ncurrent[part].title=value;}else if(controlLevel&&lastControlKey){// This is a property of a parent control (e.g., \"inputStyle.title\")\n// controlLevel should be the parent level containing the object control\nconst control=controlLevel[lastControlKey];if(control){control.title=value;}}else if(current[part]&&typeof current[part]===\"object\"){// Direct control\ncurrent[part].title=value;}}else if(current[part]&&typeof current[part]===\"object\"){// If it's a control with controls (nested), we shouldn't override it directly\nif(current[part].controls){console.warn(`Cannot override ${path} - it's a parent control with nested controls`);}else if(current[part].defaultValue!==undefined){// This is a direct control - update its defaultValue\ncurrent[part].defaultValue=value;}else if(controlLevel&&lastControlKey){// This might be a property within a control's defaultValue object\n// (e.g., \"border.borderWidth\" where border is the control)\nconst control=controlLevel[lastControlKey];if(control?.defaultValue&&typeof control.defaultValue===\"object\"){control.defaultValue[part]=value;}}}else if(controlLevel&&lastControlKey){// Property doesn't exist in current, but we have a control to modify\nconst control=controlLevel[lastControlKey];if(control?.defaultValue&&typeof control.defaultValue===\"object\"){control.defaultValue[part]=value;}}}else{// Navigate deeper\nif(current[part]?.controls){// This is a parent control with nested controls\n// Set controlLevel to current level so we can access this control later for properties like 'hidden'\ncontrolLevel=current;lastControlKey=part;current=current[part].controls;}else if(current[part]&&typeof current[part]===\"object\"){// This might be a control or a defaultValue object\nif(current[part].defaultValue!==undefined){// This is a control - check if we're trying to access its defaultValue properties\ncontrolLevel=current;lastControlKey=part;// If defaultValue is an object, navigate into it; otherwise stay at control level\nif(typeof current[part].defaultValue===\"object\"&&current[part].defaultValue!==null){current=current[part].defaultValue;}else{// defaultValue is a primitive - we need to set it directly later\ncurrent=current[part];}}else{// This is a direct control (like ComponentInstance) - set up for property access\ncontrolLevel=current;lastControlKey=part;current=current[part];}}else{console.warn(`Path ${path} not found in controls`);return;}}}});return clonedControls;}// ------------------------------------------------------------ //\n// CUSTOM HOOKS\n// ------------------------------------------------------------ //\nexport function useInventoryDisabled(shopifyDataId,selectedVariantId,disableWhenOutOfStock){const isOnFramerCanvas=isOnFramerCanvasFn();const isInFramerPreview=useIsInFramerPreview();const{data:inventoryData,isLoading,error}=useInventory(shopifyDataId);if(isOnFramerCanvas||isInFramerPreview)return{isDisabled:false};const variants=inventoryData?.data?.product?.variants?.edges||[];const selectedVariant=variants.find(variant=>extractVariantId(variant.node.id)===selectedVariantId);if(isLoading||error)return{isDisabled:false};const isInStock=selectedVariant?selectedVariant.node.quantityAvailable>0:false;const isNotTrackedStock=selectedVariant?selectedVariant.node.quantityAvailable===null||selectedVariant.node.quantityAvailable===-1:false;const isDisabled=disableWhenOutOfStock&&!isNotTrackedStock&&!isInStock;return{isDisabled};}\nexport const __FramerMetadata__ = {\"exports\":{\"PresetPrimaryButtonDisabledStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OUT_OF_STOCK_STYLE_DEFAULT_VALUES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInventoryDisabled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonDisabledStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonDisabledStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MarketButtonStylingActiveControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"overrideControlDefaults\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MarketButtonStylingActiveProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared_button_props.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{PresetPrimaryButtonStyleDefaultValues,PresetPrimaryButtonDisabledStyleDefaultValues}from\"https://framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/p64YSWJTfFgSyrzhIrVN/Shared_button_props.js\";import LoadingSpinner from\"https://framerusercontent.com/modules/J14wQOiI0O01kyXMgenS/ODFPbfbc3Lw68NQPcyta/Loading_spinner.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nexport default function PresetButton(props){const{leftIcon,rightIcon,font,text,onClick,presetButtonStyle,disabledStyle,style,disabled,isLoading,...restProps}=props;// Deep merge the presetButtonStyle with defaults\nconst mergedPresetButtonStyle={...PresetPrimaryButtonStyleDefaultValues.presetButtonStyle,...presetButtonStyle||{},hover:{...PresetPrimaryButtonStyleDefaultValues.presetButtonStyle?.hover,...presetButtonStyle?.hover||{}}};// Deep merge the disabledStyle with defaults\nconst mergedDisabledStyle={...PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle,...disabledStyle||{}};// Use disabled style when disabled, otherwise use normal style\nconst activeStyle=disabled?mergedDisabledStyle:mergedPresetButtonStyle;const handleClick=e=>{onClick(e);};return /*#__PURE__*/_jsxs(motion.button,{onClick:handleClick,style:{width:\"100%\",height:\"100%\",display:\"flex\",cursor:disabled?\"not-allowed\":\"pointer\",alignItems:activeStyle?.alignItems,justifyContent:activeStyle?.justifyContent,gap:activeStyle?.gap,padding:activeStyle?.padding,border:typeof activeStyle?.border===\"string\"?activeStyle.border:activeStyle?.border?`${activeStyle.border.borderWidth||0}px ${activeStyle.border.borderStyle||\"solid\"} ${activeStyle.border.borderColor||\"transparent\"}`:undefined,borderRadius:activeStyle?.borderRadius,backgroundColor:activeStyle?.backgroundColor,color:activeStyle?.textColor,boxShadow:activeStyle?.shadow,...disabled&&disabledStyle?.font?disabledStyle.font:font,...style},animate:{backgroundColor:activeStyle?.backgroundColor,color:activeStyle?.textColor,boxShadow:activeStyle?.shadow,border:typeof activeStyle?.border===\"string\"?activeStyle.border:activeStyle?.border?`${activeStyle.border.borderWidth||0}px ${activeStyle.border.borderStyle||\"solid\"} ${activeStyle.border.borderColor||\"transparent\"}`:undefined},whileHover:disabled?undefined:{backgroundColor:mergedPresetButtonStyle?.hover?.backgroundColor,color:mergedPresetButtonStyle?.hover?.textColor,boxShadow:mergedPresetButtonStyle?.hover?.shadow,border:typeof mergedPresetButtonStyle?.hover?.border===\"string\"?mergedPresetButtonStyle.hover.border:mergedPresetButtonStyle?.hover?.border?`${mergedPresetButtonStyle.hover.border.borderWidth||0}px ${mergedPresetButtonStyle.hover.border.borderStyle||\"solid\"} ${mergedPresetButtonStyle.hover.border.borderColor||\"transparent\"}`:undefined,transition:{duration:.3,ease:\"easeOut\"}},whileTap:{scale:activeStyle?.tapScale,transition:{duration:.1,ease:\"easeOut\"}},disabled:disabled||isLoading,...restProps,children:[isLoading&&/*#__PURE__*/_jsx(LoadingSpinner,{style:{width:restProps.loadingSpinnerSize||24,height:restProps.loadingSpinnerSize||24}}),leftIcon&&!isLoading&&/*#__PURE__*/_jsx(\"span\",{children:leftIcon}),text&&!isLoading&&/*#__PURE__*/_jsx(\"span\",{children:text}),rightIcon&&!isLoading&&/*#__PURE__*/_jsx(\"span\",{children:rightIcon})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PresetButton\",\"slots\":[\"leftIcon\",\"rightIcon\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{useState}from\"react\";import{ControlType,addPropertyControls}from\"framer\";import{parseShopifyData}from\"https://framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rIQkvmwRwXuf9UdI67ZU/Parse_shopify_data.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/7lKMJPqBiw0YZrxpJACh/Product_selection_store.js\";import{createShopifyCart,addToShopifyCart}from\"https://framerusercontent.com/modules/HRm4FfVJHrd62RjWhV4c/KlS9vN1CGZiFLMO9FLM5/Cart_service.js\";import{createVariantGid}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/oWpbtfeZjvritjXviKiH/Shopify_utils.js\";import{QueryClientWrapper}from\"https://framerusercontent.com/modules/zParpRuqXNNcrHNZHUCA/qIi3gTU5Kf3ikBUxIit5/Query_client_wrapper.js\";import{useLicense}from\"https://framerusercontent.com/modules/kGyAHPbQwKZr1zBe6pP6/bIPQ7zE8UE9wmZAHuORx/Use_license.js\";import PresetButton from\"https://framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/EXWRVRbrz8jUk7QspAhR/Preset_button.js\";import CustomButtonWrapper from\"https://framerusercontent.com/modules/KkMHEXBTzNGLCAGsRLrm/6SkMdiv3T9lXNoUXujQ9/Custom_button_wrapper.js\";import{PresetSecondaryButtonStyleControls,PresetButtonContentControls,CustomButtonControls,overrideControlDefaults,useInventoryDisabled,OutOfStockStyleControls}from\"https://framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/p64YSWJTfFgSyrzhIrVN/Shared_button_props.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/tl22i1lNtmmpBOq8EDe4/Shared_props.js\";import{isOnFramerCanvasFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nfunction BuyNowButtonContent(props){const isOnFramerCanvas=isOnFramerCanvasFn();const[isProcessing,setIsProcessing]=useState(false);const shopifyData=parseShopifyData(props.shopifyData);const{getSelectedVariant,getQuantity}=useProductSelectionStore();const{isFree:isFreeLicense}=useLicense();const selectedVariantId=getSelectedVariant(shopifyData.id,shopifyData.variants);const{isDisabled:isOutOfStockDisabled}=useInventoryDisabled(shopifyData.id,selectedVariantId,props.disableWhenOutOfStock);const handleBuyNow=async()=>{if(!shopifyData||isProcessing||isOutOfStockDisabled||isFreeLicense)return;try{setIsProcessing(true);props.onBuyNowStart?.();// Get the selected variant for this product\nconst selectedVariantId=getSelectedVariant(shopifyData.id,shopifyData.variants);if(!selectedVariantId){throw new Error(\"No variant selected\");}// Get the quantity for this variant\nconst quantity=getQuantity(selectedVariantId);if(quantity<=0){throw new Error(\"Invalid quantity\");}// Create a fresh cart\nconst createCartResult=await createShopifyCart();if(!createCartResult.data?.cartCreate?.cart){throw new Error(\"Failed to create cart\");}const newCartId=createCartResult.data.cartCreate.cart.id;// Add the selected variant to the cart\nconst addToCartResult=await addToShopifyCart({cartId:newCartId,variantId:createVariantGid(selectedVariantId),quantity});if(!addToCartResult.data?.cartLinesAdd?.cart?.checkoutUrl){throw new Error(\"Failed to add item to cart\");}const checkoutUrl=addToCartResult.data.cartLinesAdd.cart.checkoutUrl;// Add return URL parameter\nconst finalCheckoutUrl=`${checkoutUrl}&return_url=${encodeURIComponent(window.location.origin+\"/checkout-complete\")}`;// Redirect to checkout\nif(props.newTab){window.open(finalCheckoutUrl,\"_blank\",\"noopener,noreferrer\");}else{window.location.href=finalCheckoutUrl;}}catch(error){console.error(\"Buy Now error:\",error);props.onBuyNowError?.(error);}finally{setIsProcessing(false);}};// Check if we have valid data\nconst isDisabled=isProcessing||!shopifyData||!shopifyData.variants?.length||isOutOfStockDisabled||isFreeLicense;const finalDisabled=isOnFramerCanvas?props.previewType===\"disabled\":isDisabled;// ---------------- BUTTON STYLES ---------------- //\nconst buttonText=finalDisabled?props.outOfStockStyle.text:isProcessing?\"Processing...\":props.text;const buttonOpacity=finalDisabled?props.outOfStockStyle.opacity:undefined;const disabledStyle={alignItems:props.presetButtonStyle.alignItems,justifyContent:props.presetButtonStyle.justifyContent,gap:props.presetButtonStyle.gap,padding:props.presetButtonStyle.padding,border:props.outOfStockStyle.border,borderRadius:props.presetButtonStyle.borderRadius,textColor:props.outOfStockStyle.textColor,backgroundColor:props.outOfStockStyle.backgroundColor,shadow:props.outOfStockStyle.shadow,tapScale:props.presetButtonStyle.tapScale,font:props.presetButtonStyle.font};if(props.buttonType===\"custom\"){return /*#__PURE__*/_jsx(CustomButtonWrapper,{onClick:handleBuyNow,customButtonSize:props.customButtonSize,disabled:finalDisabled,children:props.customButton});}return /*#__PURE__*/_jsx(PresetButton,{onClick:handleBuyNow,disabled:finalDisabled,font:props.presetButtonStyle.font,leftIcon:props.leftIcon?.[0],rightIcon:props.rightIcon?.[0],text:buttonText,presetButtonStyle:props.presetButtonStyle,disabledStyle:disabledStyle,style:{opacity:buttonOpacity}});}// ------------------------------------------------------------ //\n// EXPORT WITH QUERY CLIENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */export default function BuyNowButton(props){return /*#__PURE__*/_jsx(QueryClientWrapper,{children:/*#__PURE__*/_jsx(BuyNowButtonContent,{...props})});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(BuyNowButton,{shopifyData:{type:ControlType.String,description:SHOPIFY_DATA_DESCRIPTION},disableWhenOutOfStock:{type:ControlType.Boolean,title:\"Disable Out-of-Stock\",defaultValue:true,description:\"Disable if selected variant is out-of-stock\"},...OutOfStockStyleControls,...CustomButtonControls,...overrideControlDefaults(PresetSecondaryButtonStyleControls,{\"presetButtonStyle.tapScale\":.995}),...overrideControlDefaults(PresetButtonContentControls,{text:\"Buy Now\"}),newTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:true},previewType:{type:ControlType.Enum,title:\"Preview\",options:[\"default\",\"disabled\"],optionTitles:[\"Default\",\"Out of Stock\"],defaultValue:\"default\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},...SUPPORT_CONTROL});BuyNowButton.displayName=\"Buy Now Button\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BuyNowButton\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}