{"version":3,"file":"Shared_layer_wrapper.fzCyN7Jl.mjs","names":["create","useQuery","create","Children"],"sources":["https:/framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/5VMlieiI3PeoSFTKuy6T/Product_selection_store.js","https:/framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js","https:/framerusercontent.com/modules/sX6hfMwzhWlvBxIp2fG2/SjyBJe4lfnIhJqAN3Zor/Inventory_service.js","https:/framerusercontent.com/modules/DW1wzS65glja20YJJb0w/KQTiZNSCEvXx01FGnnl6/Use_inventory.js","https:/framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/YKtQgewLhirCE4hz19dy/Shared_button_props.js","https:/framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/7z9EMNxcsZIiQTGrj76Y/Preset_button.js","https:/framerusercontent.com/modules/CEFL18JTsoVN7HzqbGVy/KndVJRNlxYcbiwXYnvWR/Custom_product_field_store.js","https:/framerusercontent.com/modules/iUgN6EtVE5IGf92CQax3/94syrlgwoxkobvWYm4U1/Add_to_cart_button.js","https:/framerusercontent.com/modules/0evMA5BbGcSJocTHhMA2/W7o2Az487E34eYHbWBNC/Shared_layer_wrapper.js"],"sourcesContent":["import{create}from\"https://framerusercontent.com/modules/ieMSnIJVCiFKJmsg1OmM/KWFJj6n258MVreTmJoNk/Zustand.js\";const sanitizeQuantity=value=>{if(!Number.isFinite(value))return 1;const rounded=Math.floor(value);return Math.max(1,rounded);};export const useProductSelectionStore=create((set,get)=>({quantitiesByVariantId:{},selectedVariantByProductId:{},selectedSellingPlanByProductId:{},sellingPlanSelectionRequirementByProductId:{},getQuantity:variantId=>{const value=get().quantitiesByVariantId[variantId];return typeof value===\"number\"?value:1;},setQuantity:(variantId,quantity)=>{const next=sanitizeQuantity(quantity);set(state=>({quantitiesByVariantId:{...state.quantitiesByVariantId,[variantId]:next}}));},increment:(variantId,step=1)=>{set(state=>{const current=state.quantitiesByVariantId[variantId]??1;const next=sanitizeQuantity(current+step);return{quantitiesByVariantId:{...state.quantitiesByVariantId,[variantId]:next}};});},decrement:(variantId,step=1)=>{set(state=>{const current=state.quantitiesByVariantId[variantId]??1;const next=sanitizeQuantity(current-step);return{quantitiesByVariantId:{...state.quantitiesByVariantId,[variantId]:next}};});},resetQuantity:variantId=>{set(state=>({quantitiesByVariantId:{...state.quantitiesByVariantId,[variantId]:1}}));},getSelectedVariant:(productId,variants)=>{const selectedVariantId=get().selectedVariantByProductId[productId];if(selectedVariantId&&variants.some(v=>v.id===selectedVariantId)){return selectedVariantId;}// Default to first variant if no selection or invalid selection\n    return variants[0]?.id||\"\";},setSelectedVariant:(productId,variantId)=>{set(state=>({selectedVariantByProductId:{...state.selectedVariantByProductId,[productId]:variantId}}));},getSelectedSellingPlan:productId=>{return get().selectedSellingPlanByProductId[productId]??null;},hasSellingPlanSelection:productId=>{return Object.prototype.hasOwnProperty.call(get().selectedSellingPlanByProductId,productId);},setSelectedSellingPlan:(productId,planId)=>{set(state=>({selectedSellingPlanByProductId:{...state.selectedSellingPlanByProductId,[productId]:planId}}));},setSellingPlanSelectionRequirement:(productId,requirement)=>{set(state=>({sellingPlanSelectionRequirementByProductId:{...state.sellingPlanSelectionRequirementByProductId,[productId]:requirement}}));},getSellingPlanSelectionRequirement:productId=>{return get().sellingPlanSelectionRequirementByProductId[productId]??\"none\";},clearAll:()=>set({quantitiesByVariantId:{},selectedVariantByProductId:{},selectedSellingPlanByProductId:{},sellingPlanSelectionRequirementByProductId:{}})}));\nexport const __FramerMetadata__ = {\"exports\":{\"useProductSelectionStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SellingPlanSelectionRequirement\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Product_selection_store.map","import{SHARED_IMAGES}from\"https://framerusercontent.com/modules/KV16nQZJzK2PakIJS3ds/mMwI0Z7Bn85AP14ADxu9/Shared_images.js\";export const parseShopifyData=shopifyData=>{const parsedShopifyData=shopifyData?JSON.parse(shopifyData):EXAMPLE_DATA;return parsedShopifyData;};const EXAMPLE_DATA={id:\"15176683880773\",title:\"Green Polo\",handle:\"green-polo\",variants:[{id:\"55218501157189\",title:\"Variant Title\",price:{amount:\"99\",currencyCode:\"USD\"},priceByMarket:{US:{amount:\"99\",currencyCode:\"USD\"},GB:{amount:\"79\",currencyCode:\"GBP\"},CA:{amount:\"129\",currencyCode:\"CAD\"},EU:{amount:\"89\",currencyCode:\"EUR\"},AU:{amount:\"139\",currencyCode:\"AUD\"}},compareAtPriceByMarket:{US:{amount:\"120\",currencyCode:\"USD\"},GB:{amount:\"95\",currencyCode:\"GBP\"},CA:{amount:\"155\",currencyCode:\"CAD\"},EU:{amount:\"109\",currencyCode:\"EUR\"},AU:{amount:\"169\",currencyCode:\"AUD\"}},weight:0,weightUnit:\"KILOGRAMS\",availableForSale:true,sku:\"sku-untracked-1\",image:{id:\"gid://shopify/ProductImage/77445152801093\",url:SHARED_IMAGES.defaultProductImage,altText:\"Product image\",width:3097,height:3908}}]};\nexport const __FramerMetadata__ = {\"exports\":{\"parseShopifyData\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{shopifyClient}from\"https://framerusercontent.com/modules/c5gtsBimYk7u4sSXwOlt/qYF6ekN6aOwuxUWbCTWd/Shopify_client.js\";import{createProductGid}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/7xRaFLeVY9UkDbqtIhhH/Shopify_utils.js\";export const getInventory=async productId=>{const productGid=createProductGid(productId);const getInventoryQuery=`#graphql\n    query getInventory($productId: ID!, $after: String) {\n      product(id: $productId) {\n        variants(first: 250, after: $after) {\n          edges {\n            node {\n              id\n              availableForSale\n              quantityAvailable\n            }\n          }\n          pageInfo {\n            hasNextPage\n            endCursor\n          }\n        }\n      }\n    }\n  `;const edges=[];let after;while(true){const result=await shopifyClient({query:getInventoryQuery,variables:{productId:productGid,after}});if(result.errors.length>0||!result.data?.product)return result;edges.push(...result.data.product.variants.edges);const pageInfo=result.data.product.variants.pageInfo;if(!pageInfo.hasNextPage||!pageInfo.endCursor){return{data:{product:{variants:{edges,pageInfo}}},errors:[]};}after=pageInfo.endCursor;}};\nexport const __FramerMetadata__ = {\"exports\":{\"getInventory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InventoryResponse\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Inventory_service.map","import{useQuery}from\"https://framerusercontent.com/modules/EsOvuK0xi7z7RIQRkokm/o6ldhcInFD0f6tYPAqS1/Tanstack_query.js\";import{getInventory}from\"https://framerusercontent.com/modules/sX6hfMwzhWlvBxIp2fG2/SjyBJe4lfnIhJqAN3Zor/Inventory_service.js\";export const INVENTORY_QUERY_KEYS={all:[\"inventory\"],byId:productId=>[\"inventory\",productId]};export const useInventory=productId=>{const{data,isLoading,error}=useQuery({queryKey:INVENTORY_QUERY_KEYS.byId(productId),queryFn:()=>getInventory(productId),enabled:!!productId});return{data,isLoading,error};};\nexport const __FramerMetadata__ = {\"exports\":{\"useInventory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"INVENTORY_QUERY_KEYS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","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/KQTiZNSCEvXx01FGnnl6/Use_inventory.js\";import{isOnFramerCanvasFn,useIsInFramerPreview}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";import{deriveInventoryState,findInventoryVariant}from\"https://framerusercontent.com/modules/rBCLWR4S69MLTQ5ZpxAH/2r4ruxRQRUOEBlTMh5zc/Inventory_state.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\",defaultValue:{// @ts-expect-error - fontSize is a string in this Framer npm version\nfontSize:\"16px\",variant:\"Regular\",lineHeight:\"1em\"},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={showDefaultIcon:{title:\"Default Icon\",type:ControlType.Boolean,defaultValue:true,hidden:()=>true,// hidden: (props: any) => props.buttonType === \"custom\", // shown only on add to cart button\nenabledTitle:\"Show\",disabledTitle:\"Hide\"},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\"},customButtonDisabled:{title:\"Button Disabled\",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=findInventoryVariant(variants,selectedVariantId);if(isLoading||error)return{isDisabled:false};const inventoryState=deriveInventoryState(selectedVariant);const isDisabled=disableWhenOutOfStock&&inventoryState.isPurchaseDisabled;return{isDisabled};}\nexport const __FramerMetadata__ = {\"exports\":{\"PresetPrimaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"overrideControlDefaults\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonDisabledStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MarketButtonStylingActiveControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OUT_OF_STOCK_STYLE_DEFAULT_VALUES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInventoryDisabled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonDisabledStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonDisabledStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MarketButtonStylingActiveProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","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/YKtQgewLhirCE4hz19dy/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||{}}};// When no disabled styling is passed, keep the preset look and only fade + cursor (handled below).\nconst useFadedPresetWhenDisabled=disabledStyle===undefined;// Deep merge the disabledStyle with defaults (only when disabled styling exists)\nconst mergedDisabledStyle={...PresetPrimaryButtonDisabledStyleDefaultValues.disabledStyle,...disabledStyle||{}};const activeStyle=disabled?useFadedPresetWhenDisabled?mergedPresetButtonStyle: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\",opacity:disabled&&useFadedPresetWhenDisabled?.5:undefined,alignItems:activeStyle?.alignItems,justifyContent:activeStyle?.justifyContent,gap:activeStyle?.gap,padding:activeStyle?.padding,whiteSpace:\"nowrap\",overflow:\"hidden\",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,opacity:disabled&&useFadedPresetWhenDisabled?.5:1,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\",{style:{overflow:\"hidden\",textOverflow:\"ellipsis\"},children:text}),rightIcon&&!isLoading&&/*#__PURE__*/_jsx(\"span\",{children:rightIcon})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"PresetButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"PresetButton\",\"slots\":[\"leftIcon\",\"rightIcon\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{create}from\"https://framerusercontent.com/modules/ieMSnIJVCiFKJmsg1OmM/KWFJj6n258MVreTmJoNk/Zustand.js\";export const useCustomProductFieldStore=create((set,get)=>({fieldsByProductId:{},registerField:(productId,fieldId,field)=>{set(state=>({fieldsByProductId:{...state.fieldsByProductId,[productId]:{...state.fieldsByProductId[productId]||{},[fieldId]:{key:field.key,label:field.label,required:field.required,value:state.fieldsByProductId[productId]?.[fieldId]?.value??field.value??\"\"}}}}));},unregisterField:(productId,fieldId)=>{set(state=>{const productFields=state.fieldsByProductId[productId];if(!productFields?.[fieldId]){return state;}const nextProductFields={...productFields};delete nextProductFields[fieldId];if(Object.keys(nextProductFields).length===0){const nextFieldsByProductId={...state.fieldsByProductId};delete nextFieldsByProductId[productId];return{fieldsByProductId:nextFieldsByProductId};}return{fieldsByProductId:{...state.fieldsByProductId,[productId]:nextProductFields}};});},setFieldValue:(productId,fieldId,value)=>{set(state=>{const currentField=state.fieldsByProductId[productId]?.[fieldId];if(!currentField){return state;}return{fieldsByProductId:{...state.fieldsByProductId,[productId]:{...state.fieldsByProductId[productId],[fieldId]:{...currentField,value}}}};});},getFieldValue:(productId,fieldId)=>{return get().fieldsByProductId[productId]?.[fieldId]?.value??\"\";},getCartAttributes:productId=>{const productFields=Object.values(get().fieldsByProductId[productId]||{});return productFields.map(field=>({key:field.key.trim(),value:field.value.trim()})).filter(field=>field.key&&field.value);},hasInvalidRequiredFields:productId=>{const productFields=Object.values(get().fieldsByProductId[productId]||{});return productFields.some(field=>field.required&&field.value.trim().length===0);}}));\nexport const __FramerMetadata__ = {\"exports\":{\"useCustomProductFieldStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CartLineAttribute\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Custom_product_field_store.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCart}from\"https://framerusercontent.com/modules/qNwuWLbXbcYKugmCfVBu/Mtouzhb6zj2BeRL1crCO/Use_cart.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/5VMlieiI3PeoSFTKuy6T/Product_selection_store.js\";import{parseShopifyData}from\"https://framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js\";import{createVariantGid,createProductGid}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/7xRaFLeVY9UkDbqtIhhH/Shopify_utils.js\";import{QueryClientWrapper}from\"https://framerusercontent.com/modules/zParpRuqXNNcrHNZHUCA/c79VKYmrBl02dZ0c2Deg/Query_client_wrapper.js\";import{OPEN_CART_EVENT}from\"https://framerusercontent.com/modules/ULfRcpFPm40RheG8xy3S/Pfxgjc633U68bx2ecZz0/Shared_config.js\";import PresetButton from\"https://framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/7z9EMNxcsZIiQTGrj76Y/Preset_button.js\";import CustomButtonWrapper from\"https://framerusercontent.com/modules/KkMHEXBTzNGLCAGsRLrm/C2sk9cjUnc3YE4Ebu9Zq/Custom_button_wrapper.js\";import CartSvg from\"https://framerusercontent.com/modules/qGSs7SULtHSo8Msf1WUy/vraFd5f3jmKFoHJ9xWa7/Cart.js\";import{PresetPrimaryButtonStyleControls,PresetButtonContentControls,CustomButtonControls,overrideControlDefaults,useInventoryDisabled,OutOfStockStyleControls}from\"https://framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/YKtQgewLhirCE4hz19dy/Shared_button_props.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/mIDGZDuYkLeEfvCEqoly/Shared_props.js\";import{isOnFramerCanvasFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";import{useCurrentLocation}from\"https://framer.com/m/UseCurrentLocation-oZyA.js@1l8XdClJld0xwptzsD73\";import{useCustomProductFieldStore}from\"https://framerusercontent.com/modules/CEFL18JTsoVN7HzqbGVy/KndVJRNlxYcbiwXYnvWR/Custom_product_field_store.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nfunction AddToCartButtonContent(props){const isOnFramerCanvas=isOnFramerCanvasFn();const{addToCart,isLoading:isCartLoading}=useCart();const shopifyData=parseShopifyData(props.shopifyData);const selectedVariantId=useProductSelectionStore(state=>state.getSelectedVariant(shopifyData.id,shopifyData.variants));const selectedSellingPlan=useProductSelectionStore(state=>state.getSelectedSellingPlan(shopifyData.id));const hasSellingPlanSelection=useProductSelectionStore(state=>state.hasSellingPlanSelection(shopifyData.id));const selectorSelectionRequirement=useProductSelectionStore(state=>state.getSellingPlanSelectionRequirement(shopifyData.id));const hasInvalidRequiredFields=useCustomProductFieldStore(state=>state.hasInvalidRequiredFields(shopifyData.id));const[,setCurrentLocation]=useCurrentLocation();const{isDisabled}=useInventoryDisabled(shopifyData.id,selectedVariantId,props.disableWhenOutOfStock);const isOutOfStockDisabled=isDisabled;const hasSellingPlans=(shopifyData.sellingPlanGroups||[]).some(group=>(group.sellingPlans||[]).length>0);const selectionRequirement=shopifyData.requiresSellingPlan===true&&hasSellingPlans?\"sellingPlan\":selectorSelectionRequirement;const isMissingRequiredSellingPlan=selectionRequirement===\"sellingPlan\"?!hasSellingPlanSelection||selectedSellingPlan===null:selectionRequirement===\"purchaseOption\"&&!hasSellingPlanSelection;const handleAddToCart=async()=>{if(isOutOfStockDisabled||isCartLoading||hasInvalidRequiredFields||isMissingRequiredSellingPlan)return;const finalVariantIdString=createVariantGid(selectedVariantId);const qty=useProductSelectionStore.getState().getQuantity(selectedVariantId);const attributes=useCustomProductFieldStore.getState().getCartAttributes(shopifyData.id);// Build optimistic variant data for instant UI update\nconst selectedVariant=shopifyData.variants.find(v=>createVariantGid(v.id)===finalVariantIdString);const variantData=selectedVariant?{title:selectedVariant.title||\"\",productTitle:shopifyData.title||\"\",productHandle:shopifyData.handle||\"\",productId:createProductGid(shopifyData.id),image:{url:selectedVariant.image?.url||\"\",altText:selectedVariant.image?.altText||\"\"},price:selectedVariant.price||{amount:\"0\",currencyCode:\"USD\"}}:undefined;try{// Using the sync version - pass sellingPlanId if subscription selected\naddToCart(finalVariantIdString,qty,selectedSellingPlan??undefined,variantData,attributes);if(props.openCartOnAddToCart===\"cartOverlay\"){// delau\nsetTimeout(()=>{document.dispatchEvent(new Event(OPEN_CART_EVENT));},75);}else if(props.openCartOnAddToCart===\"cartPage\"){setCurrentLocation(props.cartPage);}}catch(error){console.error(\"Error adding to cart:\",error);}};// Determine if button should be disabled\nconst isButtonDisabled=isOutOfStockDisabled||hasInvalidRequiredFields||isMissingRequiredSellingPlan;const finalDisabled=isOnFramerCanvas?props.previewType===\"disabled\":isButtonDisabled;// Update button text if cart is loading\nconst displayText=props.text;// ---------------- BUTTON STYLES ---------------- //\nconst buttonText=isOutOfStockDisabled?props.outOfStockStyle.text:displayText;const buttonOpacity=isOutOfStockDisabled?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:handleAddToCart,customButtonSize:props.customButtonSize,disabled:finalDisabled,disabledButton:props.customButtonDisabled?.[0],children:props.customButton});}return /*#__PURE__*/_jsx(PresetButton,{onClick:handleAddToCart,leftIcon:props.showDefaultIcon?/*#__PURE__*/_jsx(CartSvg,{}):props.leftIcon?.[0],rightIcon:props.rightIcon?.[0],text:buttonText,font:props.presetButtonStyle.font,presetButtonStyle:props.presetButtonStyle,disabledStyle:disabledStyle,disabled:finalDisabled,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 AddToCartButton(props){return /*#__PURE__*/_jsx(QueryClientWrapper,{children:/*#__PURE__*/_jsx(AddToCartButtonContent,{...props})});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(AddToCartButton,{shopifyData:{type:ControlType.String,description:SHOPIFY_DATA_DESCRIPTION},openCartOnAddToCart:{type:ControlType.Enum,title:\"Open Cart\",options:[\"cartOverlay\",\"cartPage\",\"none\"],optionTitles:[\"Cart Overlay\",\"Cart Page\",\"None\"],defaultValue:\"cartOverlay\",description:\"Action to take when adding to cart.\"},cartPage:{type:ControlType.Link,title:\"Cart Page\",defaultValue:\"/cart\",hidden:props=>props.openCartOnAddToCart!==\"cartPage\"},disableWhenOutOfStock:{type:ControlType.Boolean,title:\"Disable Out-of-Stock\",defaultValue:true,description:\"Disable if selected variant is out-of-stock\"},...OutOfStockStyleControls,...CustomButtonControls,...overrideControlDefaults(PresetPrimaryButtonStyleControls,{\"presetButtonStyle.tapScale\":.995}),...overrideControlDefaults(PresetButtonContentControls,{text:\"Add to Cart\",\"showDefaultIcon.hidden\":props=>props.buttonType===\"custom\"}),previewType:{type:ControlType.Enum,title:\"Preview\",options:[\"default\",\"disabled\"],optionTitles:[\"Default\",\"Out of Stock\"],defaultValue:\"default\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},...SUPPORT_CONTROL});AddToCartButton.displayName=\"Add To Cart Button\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AddToCartButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"40\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,cloneElement,isValidElement}from\"react\";import{ControlType}from\"framer\";import{MARGIN_DESCRIPTION}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/mIDGZDuYkLeEfvCEqoly/Shared_props.js\";export const defaultLayerLayout={display:\"flex\",gap:16,direction:\"column\",wrap:true,justifyContent:\"flex-start\",alignItems:\"flex-start\",columns:3,rowGap:4,columnGap:4,justifyItems:\"stretch\",gridAlignItems:\"stretch\"};/**\n * Maps LayerLayoutConfig to CSS (same rules as Variant selector layout).\n */export function getLayerLayoutStyle(layout){if(layout.display===\"grid\"){return{display:\"grid\",gridTemplateColumns:`repeat(${layout.columns??3}, auto)`,rowGap:layout.rowGap??4,columnGap:layout.columnGap??4,justifyItems:layout.justifyItems??\"stretch\",alignItems:layout.gridAlignItems??\"stretch\"};}return{display:\"flex\",flexDirection:layout.direction??\"row\",flexWrap:layout.wrap?\"wrap\":\"nowrap\",justifyContent:layout.justifyContent??\"flex-start\",alignItems:layout.alignItems??\"flex-start\",gap:layout.gap??4};}function cloneFullWidthChildren(node){return Children.map(node,child=>{if(/*#__PURE__*/isValidElement(child)){return /*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:\"100%\"}});}return child;});}// ------------------------------------------------------------ //\n// COMPONENT\n// ------------------------------------------------------------ //\nexport function LayerWrapper({layerStyles={},topBottomContent,children}){const layout=layerStyles.layout??defaultLayerLayout;const clonedTopContent=cloneFullWidthChildren(topBottomContent?.[0]);const clonedBottomContent=cloneFullWidthChildren(topBottomContent?.[1]);return /*#__PURE__*/_jsxs(\"div\",{style:{...getLayerLayoutStyle(layout),backgroundColor:layerStyles.backgroundColor,border:typeof layerStyles.border===\"string\"?layerStyles.border:undefined,...typeof layerStyles.border===\"object\"?layerStyles.border:{},borderRadius:layerStyles.radius,padding:layerStyles.padding,margin:layerStyles.margin,boxShadow:layerStyles.shadow},children:[clonedTopContent,children,clonedBottomContent]});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\nexport const LAYER_WRAPPER_PROPERTY_CONTROLS={layerStyles:{type:ControlType.Object,title:\"Layer Style\",buttonTitle:\"Layout, Colors, Border, etc.\",controls:{layout:{type:ControlType.Object,title:\"📐 Layout\",buttonTitle:\"Flex, Grid, Gap, etc.\",controls:{display:{type:ControlType.Enum,title:\"Display\",options:[\"flex\",\"grid\"],optionTitles:[\"Flex\",\"Grid\"],defaultValue:\"flex\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:16,min:0,max:100,step:1,unit:\"px\",displayStepper:true,hidden:props=>props.display!==\"flex\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"row\",\"column\"],optionTitles:[\"Row\",\"Column\"],defaultValue:\"column\",displaySegmentedControl:true,hidden:props=>props.display!==\"flex\"},wrap:{type:ControlType.Boolean,title:\"Wrap\",defaultValue:true,hidden:props=>props.display!==\"flex\"},justifyContent:{type:ControlType.Enum,title:\"Justify\",options:[\"flex-start\",\"flex-end\",\"center\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Space Between\",\"Space Around\",\"Space Evenly\"],defaultValue:\"flex-start\",hidden:props=>props.display!==\"flex\"},alignItems:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"flex-end\",\"center\",\"stretch\",\"baseline\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Stretch\",\"Baseline\"],defaultValue:\"flex-start\",hidden:props=>props.display!==\"flex\"},columns:{type:ControlType.Number,title:\"Columns\",defaultValue:3,min:1,max:12,step:1,hidden:props=>props.display!==\"grid\",displayStepper:true},rowGap:{type:ControlType.Number,title:\"Row Gap\",defaultValue:4,min:0,max:100,step:1,unit:\"px\",displayStepper:true,hidden:props=>props.display!==\"grid\"},columnGap:{type:ControlType.Number,title:\"Column Gap\",defaultValue:4,min:0,max:100,step:1,unit:\"px\",displayStepper:true,hidden:props=>props.display!==\"grid\"},justifyItems:{type:ControlType.Enum,title:\"Justify Items\",options:[\"start\",\"end\",\"center\",\"stretch\",\"baseline\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Stretch\",\"Baseline\"],defaultValue:\"stretch\",hidden:props=>props.display!==\"grid\"},gridAlignItems:{type:ControlType.Enum,title:\"Align Items\",options:[\"start\",\"end\",\"center\",\"stretch\",\"baseline\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Stretch\",\"Baseline\"],defaultValue:\"stretch\",hidden:props=>props.display!==\"grid\"}},defaultValue:{display:\"flex\",gap:16,direction:\"column\",wrap:true,justifyContent:\"flex-start\",alignItems:\"flex-start\",columns:3,rowGap:4,columnGap:4,justifyItems:\"stretch\",gridAlignItems:\"stretch\"}},backgroundColor:{type:ControlType.Color,title:\"Background Color\",optional:true},shadow:{// @ts-expect-error - BoxShadow is not a valid control type in this Framer npm version\ntype:ControlType.BoxShadow,title:\"Shadow\",optional:true},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",optional:true},radius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Radius\"},padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\"},margin:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Margin\",optional:true,description:MARGIN_DESCRIPTION}}},topBottomContent:{type:ControlType.Array,title:\"Top & Bottom Content\",control:{type:ControlType.ComponentInstance},maxCount:2}};\nexport const __FramerMetadata__ = {\"exports\":{\"LayerLayoutConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LayerWrapperProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLayerLayoutStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LayerWrapper\":{\"type\":\"reactComponent\",\"name\":\"LayerWrapper\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultLayerLayout\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LayerStylesProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LAYER_WRAPPER_PROPERTY_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared_layer_wrapper.map"],"mappings":"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"}