{"version":3,"file":"Quantity_input.CoXKViRE.mjs","names":["create","LoadingSkeleton","useMemo","useState","useState","useState","useRef","useState","useMemo","useState","Input","QueryClientProvider"],"sources":["https:/framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js","https:/framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/R6492SgoPzpAhTwJ6Uq8/Product_selection_store.js","https:/framerusercontent.com/modules/DVekzR4Sf5b9vz5aNZl6/ala7VfyZVQdAUHid24TK/Variant_info_label.js","https:/framerusercontent.com/modules/iUgN6EtVE5IGf92CQax3/LsW8WNjZKbxiVZumAb2f/Add_to_cart_button.js","https:/framerusercontent.com/modules/Yka9BTwP6pnUEgruT9LS/Jc9IxeCuGijc2VjPdP2l/Helpers.js","https:/framerusercontent.com/modules/l1z5Z7HKu7jw66Txaa5F/7aL6JiqExNvheuIFD72s/State_empty_canvas.js","https:/framerusercontent.com/modules/3Um7Da0PioNPYdqeX5Ez/6pq441btw51VtIysVhqg/Hooks.js","https:/framerusercontent.com/modules/7wU9mRDjXO6UTdjgi9UD/nUfbnunCYjAXBDQKMI3j/Swatch.js","https:/framerusercontent.com/modules/bbjyVb2V57Nhjs1gu9rH/psCLJv7nwKIGTQiOlmIi/Use_is_mobile.js","https:/framerusercontent.com/modules/EAtAInyNWWh0slvVOxX5/DVOlG0u1TUVYEqCXFtQn/Lightbox.js","https:/framerusercontent.com/modules/E8uvFgVk9lf9dvq1WmMl/HsfI3mZpqPD0s34wqkoG/Zoom_image.js","https:/framerusercontent.com/modules/IUxqF8JlmtZMvOa0ETXF/7Z5FazBfzuoZON6sxmaL/Gallery.js","https:/framerusercontent.com/modules/SxGVBI9k7bU23KYa4lkZ/iMRvF9tdGRhQBlR3qmyo/Quantity_input.js"],"sourcesContent":["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{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:{},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;},setSelectedSellingPlan:(productId,planId)=>{set(state=>({selectedSellingPlanByProductId:{...state.selectedSellingPlanByProductId,[productId]:planId}}));},clearAll:()=>set({quantitiesByVariantId:{},selectedVariantByProductId:{},selectedSellingPlanByProductId:{}})}));\nexport const __FramerMetadata__ = {\"exports\":{\"useProductSelectionStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Product_selection_store.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{parseShopifyData}from\"https://framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/R6492SgoPzpAhTwJ6Uq8/Product_selection_store.js\";import{useLivePricingStore}from\"https://framerusercontent.com/modules/3C9wF5reOoO0EZmRXDu0/ygnGnGXVxi5aqDsPa5BS/Live_pricing_store.js\";import{SHARED_COLORS}from\"https://framerusercontent.com/modules/Nrs4jz2AAEOfEZRQEQij/7Ao2SBt1Ssf683HHXgzl/Shared_styles.js\";import{renderWithTag,TagPropertyControls}from\"https://framerusercontent.com/modules/cmJdj1YCmFSsS6n95OKk/9t9XeEHurZ6w5fbXeCsJ/Shared_tag_props.js\";import{CurrencyFormatControls,formatCurrency}from\"https://framerusercontent.com/modules/mHaK3bedwyJwyNxfaowX/hWKLWGrPdtcuWvTxZqnK/Shared_currency_props.js\";import{TextDecorationControls}from\"https://framerusercontent.com/modules/br9bXgadWgfJaD0swwuT/jUc9YNpAtX8KUoSpiBD2/Shared_text_decoration_props.js\";import LoadingSkeleton from\"https://framerusercontent.com/modules/N0h2Mv73o8xtz2My1yiB/RR9fj2DVzBXn0Wwu7ijL/Loading_skeleton.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/zpYQI5Hzt8wx5QiaCjMr/Shared_props.js\";import{formatDeliveryFrequencyShorthand}from\"https://framerusercontent.com/modules/3QrZAq5uElJQ8m88NKWY/5xJkuuHwMm3iKqkoNzBk/Subscriptions_utils.js\";import{calculateSellingPlanPrice}from\"https://framerusercontent.com/modules/3QrZAq5uElJQ8m88NKWY/5xJkuuHwMm3iKqkoNzBk/Subscriptions_utils.js\";import{isOnFramerCanvasFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function VariantInfoLabel(props){const shopifyData=parseShopifyData(props.shopifyData);const isOnFramerCanvas=isOnFramerCanvasFn();const{getSelectedVariant,getSelectedSellingPlan,getQuantity}=useProductSelectionStore();const{getLivePrice,isLoading,isFetching}=useLivePricingStore();const selectedVariantId=getSelectedVariant(shopifyData.id,shopifyData.variants);const selectedVariant=shopifyData.variants.find(variant=>variant.id===selectedVariantId);const selectedSellingPlanId=getSelectedSellingPlan(shopifyData.id);const selectedSellingPlan=shopifyData.sellingPlanGroups?.flatMap(group=>group.sellingPlans||[]).find(plan=>plan.id===selectedSellingPlanId);const renderVariantInfo=()=>{if(!selectedVariant)return null;switch(props.type){case\"price\":{// Priority: live > cms default\nconst livePrice=getLivePrice(selectedVariant.id);let priceData=selectedVariant.price;// Default fallback\n// Override with live pricing if available\nif(livePrice?.price){priceData=livePrice.price;}// Store the current currencyCode before applying selling plan adjustment\n// This ensures we preserve the currency from live pricing/market\nconst currentCurrencyCode=priceData.currencyCode;// Apply selling plan price adjustment if available\nif(selectedSellingPlan){const adjustedPrice=calculateSellingPlanPrice(priceData,selectedSellingPlan);if(adjustedPrice){// Ensure we use the currencyCode from the current market/live pricing\n// instead of the one from the selling plan adjustment data\npriceData={...adjustedPrice,currencyCode:currentCurrencyCode};}}const formattedPrice=formatCurrency({amount:Number(priceData.amount),currencyCode:priceData.currencyCode,options:props.currencyFormat});// Append delivery frequency suffix if selling plan is selected\nif(selectedSellingPlan?.options?.[0]?.value){const deliveryFrequency=selectedSellingPlan.options[0].value;const shorthand=formatDeliveryFrequencyShorthand(deliveryFrequency);return`${formattedPrice}/${shorthand}`;}return formattedPrice;}case\"compareAtPrice\":{// Priority: live > cms market > cms default\nconst livePrice=getLivePrice(selectedVariant.id);let compareAtPriceData=selectedVariant.compareAtPrice;// Default fallback\n// Override with live pricing if available\nif(livePrice?.compareAtPrice){compareAtPriceData=livePrice.compareAtPrice;}if(!compareAtPriceData)return\"\";return formatCurrency({amount:Number(compareAtPriceData.amount),currencyCode:compareAtPriceData.currencyCode,options:props.currencyFormat});}case\"variantName\":return selectedVariant.title===\"Default Title\"?\"\":selectedVariant.title;case\"sku\":return selectedVariant.sku;case\"barcode\":return selectedVariant.barcode;case\"sellingPlanName\":return selectedSellingPlan?.name||\"\";case\"sellingPlanDescription\":return selectedSellingPlan?.description||\"\";case\"sellingPlanOptions\":if(!selectedSellingPlan?.options?.length)return\"\";return selectedSellingPlan.options.map(option=>`${option.name}: ${option.value}`).join(\", \");case\"totalPrice\":{const livePrice=getLivePrice(selectedVariant.id);let priceData=selectedVariant.price;if(livePrice?.price){priceData=livePrice.price;}const currentCurrencyCode=priceData.currencyCode;if(selectedSellingPlan){const adjustedPrice=calculateSellingPlanPrice(priceData,selectedSellingPlan);if(adjustedPrice){priceData={...adjustedPrice,currencyCode:currentCurrencyCode};}}const quantity=getQuantity(selectedVariant.id);return formatCurrency({amount:Number(priceData.amount)*quantity,currencyCode:priceData.currencyCode,options:props.currencyFormat});}}};// Show loading skeleton for price/compareAtPrice during initial load\nconst isPriceType=props.type===\"price\"||props.type===\"compareAtPrice\"||props.type===\"totalPrice\";if(isLoading&&isPriceType){return /*#__PURE__*/_jsx(LoadingSkeleton,{style:{width:\"60px\",height:\"20px\"}});}const content=renderVariantInfo();const style={...props.font,color:props.color,textDecoration:props.decoration===\"none\"?\"none\":props.decoration};// Selling plan types that should show placeholder on canvas\nconst isSellingPlanType=props.type===\"sellingPlanName\"||props.type===\"sellingPlanDescription\"||props.type===\"sellingPlanOptions\";// Force visibility on canvas for selling plan types so user can configure\nconst shouldShowOnCanvas=isOnFramerCanvas&&isSellingPlanType;// Hide component when empty and whenZero is \"hide\"\n// Exception: show placeholder on canvas for selling plan types\nconst isEmptyValue=!content||content===\"\";if(props.whenZero===\"hide\"&&isEmptyValue&&!shouldShowOnCanvas){return null;}// Show specified text if whenZero is \"text\" and empty\nif(props.whenZero===\"text\"&&isEmptyValue){return /*#__PURE__*/_jsx(\"div\",{style:{opacity:isFetching&&isPriceType?.6:1,transition:\"opacity 0.3s ease\"},children:renderWithTag(props.tag,props.text,style)});}// Get placeholder text for empty values\nconst getPlaceholderText=()=>{if(isOnFramerCanvas&&isSellingPlanType){switch(props.type){case\"sellingPlanName\":return\"Monthly subscription\";case\"sellingPlanOptions\":return\"Deliver every month\";case\"sellingPlanDescription\":return\"Plan description\";}}return\"0\";};// Show empty content if whenZero is \"show\"\nif(isEmptyValue){return /*#__PURE__*/_jsx(\"div\",{style:{opacity:isFetching&&isPriceType?.6:1,transition:\"opacity 0.3s ease\"},children:renderWithTag(props.tag,getPlaceholderText(),style)});}// Wrap content in fade transition container for price types\nreturn /*#__PURE__*/_jsx(\"div\",{style:{opacity:isFetching&&isPriceType?.6:1,transition:\"opacity 0.3s ease\"},children:renderWithTag(props.tag,content,style)});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(VariantInfoLabel,{shopifyData:{type:ControlType.String,description:SHOPIFY_DATA_DESCRIPTION},type:{type:ControlType.Enum,options:[\"price\",\"compareAtPrice\",\"variantName\",\"sku\",\"barcode\",\"sellingPlanName\",\"sellingPlanDescription\",\"sellingPlanOptions\",\"totalPrice\"],optionTitles:[\"Price\",\"Compare At Price\",\"Variant Name\",\"SKU\",\"Barcode\",\"Subscription Name\",\"Subscription Description\",\"Subscription Options\",\"Total Price\"],defaultValue:\"price\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:SHARED_COLORS.foreground},whenZero:{type:ControlType.Enum,title:\"When Zero\",options:[\"show\",\"hide\",\"text\"],optionTitles:[\"Show\",\"Hide\",\"Text\"],defaultValue:\"hide\",displaySegmentedControl:true},text:{type:ControlType.String,title:\"Text\",defaultValue:\"Free\",hidden:props=>props.whenZero!==\"text\"},currencyFormat:{...CurrencyFormatControls.currencyFormat,hidden:props=>props.type!==\"price\"&&props.type!==\"compareAtPrice\"&&props.type!==\"totalPrice\"},...TagPropertyControls,...TextDecorationControls,...SUPPORT_CONTROL});VariantInfoLabel.displayName=\"Variant Info Label\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VariantInfoLabel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCart}from\"https://framerusercontent.com/modules/qNwuWLbXbcYKugmCfVBu/prh0moF8FWnc4xpyXN8Z/Use_cart.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/R6492SgoPzpAhTwJ6Uq8/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/oWpbtfeZjvritjXviKiH/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/qJhHdmQsP7KnXdnJHkkc/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/BHRSzpNTK9tPbKGRIYxx/Shared_button_props.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/zpYQI5Hzt8wx5QiaCjMr/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\";// ------------------------------------------------------------ //\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[,setCurrentLocation]=useCurrentLocation();const{isDisabled}=useInventoryDisabled(shopifyData.id,selectedVariantId,props.disableWhenOutOfStock);const handleAddToCart=async()=>{if(isDisabled||isCartLoading)return;const finalVariantIdString=createVariantGid(selectedVariantId);const qty=useProductSelectionStore.getState().getQuantity(selectedVariantId);const sellingPlanId=useProductSelectionStore.getState().getSelectedSellingPlan(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,sellingPlanId??undefined,variantData);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=isDisabled;const finalDisabled=isOnFramerCanvas?props.previewType===\"disabled\":isButtonDisabled;// Update button text if cart is loading\nconst displayText=props.text;// ---------------- BUTTON STYLES ---------------- //\nconst buttonText=finalDisabled?props.outOfStockStyle.text:displayText;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: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\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"40\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","export const DEFAULT_PRODUCT_IMAGE=\"https://framerusercontent.com/images/oqyYSLXhERdfkDY5XMVyprSYO0.webp\";export const DEFAULT_PRODUCT_IMAGE_2=\"https://framerusercontent.com/images/ub17BCl84mP9KkiTTOme1UDyvk.webp\";export const DEFAULT_PRODUCT_IMAGE_3=\"https://framerusercontent.com/images/ORfm700yP1zckvftzPEQOe006k.webp\";export function extractImageNumbersForVariant(mappingString,variantId){if(!mappingString||!variantId)return[];const result=[];const regex=/\\[img (\\d+) ~ (\\d+)\\]/g;let match;while((match=regex.exec(mappingString))!==null){const imageNum=match[1];const mappedVariantId=match[2];if(String(mappedVariantId)===String(variantId)){result.push(imageNum);}}return result;}export function getVariantIdForImageNumber(mappingString,imageNumber){if(!mappingString||!imageNumber)return null;const regex=/\\[img (\\d+) ~ (\\d+)\\]/g;let match;while((match=regex.exec(mappingString))!==null){const imageNum=Number(match[1]);const variantId=match[2];if(imageNum===imageNumber)return variantId;}return null;}export function getObjectFit(objectFit){if(objectFit===\"fill\")return\"cover\";if(objectFit===\"fit\")return\"contain\";if(objectFit===\"stretch\")return\"fill\";return\"cover\";}\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantIdForImageNumber\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_PRODUCT_IMAGE_3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_PRODUCT_IMAGE_2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getObjectFit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_PRODUCT_IMAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractImageNumbersForVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Helpers.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{DEFAULT_PRODUCT_IMAGE,DEFAULT_PRODUCT_IMAGE_2,DEFAULT_PRODUCT_IMAGE_3,getObjectFit}from\"https://framerusercontent.com/modules/Yka9BTwP6pnUEgruT9LS/Jc9IxeCuGijc2VjPdP2l/Helpers.js\";export default function GalleryEmptyCanvasState(props){return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,height:\"100%\",width:\"100%\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",overflow:\"hidden\",height:\"100%\"},children:/*#__PURE__*/_jsx(\"img\",{src:DEFAULT_PRODUCT_IMAGE,alt:\"Default product image\",style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:getObjectFit(props.imageFit),objectPosition:props.imageFit===\"fill\"?`${props.focalPoint.x}% ${props.focalPoint.y}%`:undefined}})}),props.showSwatches&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:6},children:[1,2,3].map(i=>/*#__PURE__*/_jsx(\"img\",{src:i===1?DEFAULT_PRODUCT_IMAGE:i===2?DEFAULT_PRODUCT_IMAGE_2:DEFAULT_PRODUCT_IMAGE_3,alt:`Default swatch ${i}`,style:{width:64,height:64,objectFit:\"cover\",borderRadius:6,border:\"2px solid transparent\",cursor:\"pointer\"}},i))})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GalleryEmptyCanvasState\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./State_empty_canvas.map","import{useEffect,useMemo,useState}from\"react\";import{parseShopifyData}from\"https://framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/R6492SgoPzpAhTwJ6Uq8/Product_selection_store.js\";import{isBrowserFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";import{extractImageNumbersForVariant,getVariantIdForImageNumber}from\"https://framerusercontent.com/modules/Yka9BTwP6pnUEgruT9LS/Jc9IxeCuGijc2VjPdP2l/Helpers.js\";/**\n * Hook to parse Shopify data and extract product information\n */export function useShopifyProductData(shopifyData){const data=parseShopifyData(shopifyData);const productId=data?.id||\"\";const variants=data?.variants||[];return{data,productId,variants};}/**\n * Hook to compute images array from component props\n */export function useGalleryImages(props){const images=useMemo(()=>{const arr=[];for(let i=1;i<=props.numberOfImages;i++){const imageProp=props[`image${i}`];if(imageProp?.src){arr.push(imageProp.src);}}return arr;},[props]);return images;}/**\n * Hook to get the currently selected variant ID\n */export function useSelectedVariant(productId,variants){const selectedVariantId=useProductSelectionStore(state=>state.getSelectedVariant(productId,variants));return selectedVariantId;}/**\n * Hook to handle variant-image mapping logic\n */export function useVariantImageMapping(variantImageMapping,selectedVariantId,images){// Get initial image index based on variant from Zustand storage\nconst getInitialImageIndex=()=>{if(!variantImageMapping||!selectedVariantId){return 0;// Default to first image if no variant selected\n}const nums=extractImageNumbersForVariant(variantImageMapping,selectedVariantId);if(nums[0]){const idx=Number(nums[0])-1;if(idx>=0&&idx<images.length){return idx;}}// If variant not found in mapping, default to first image\nreturn 0;};// Compute which image indices belong to the currently selected variant\nconst variantImageIndices=useMemo(()=>{if(!variantImageMapping||!selectedVariantId){return images.map((_,i)=>i);}const nums=extractImageNumbersForVariant(variantImageMapping,selectedVariantId);const idxs=nums.map(n=>Number(n)-1).filter(i=>Number.isFinite(i)&&i>=0&&i<images.length);return idxs.length>0?idxs:images.map((_,i)=>i);},[variantImageMapping,selectedVariantId,images,images.length]);return{getInitialImageIndex,variantImageIndices};}/**\n * Hook to handle global variant image sync events\n */export function useVariantImageSync(productId,images,setCurrentImageIndex){const isBrowser=isBrowserFn();useEffect(()=>{if(!isBrowser)return;function handleVariantImageMatch(e){if(!e?.detail?.imageNumber)return;if(e.detail?.shopifyProductID!==`gid://shopify/Product/${productId}`){return;}const imgNum=Number(e.detail.imageNumber);if(!Number.isFinite(imgNum))return;const idx=imgNum-1;if(idx>=0&&idx<images.length)setCurrentImageIndex(idx);}document.addEventListener(\"frameship_variant_image_selected\",handleVariantImageMatch);return()=>{document.removeEventListener(\"frameship_variant_image_selected\",handleVariantImageMatch);};},[productId,images.length,setCurrentImageIndex,isBrowser]);}/**\n * Hook to manage gallery state and auto-sync effects\n */export function useGalleryState(variantImageMapping,selectedVariantId,images,getInitialImageIndex,productId){const[currentImageIndex,setCurrentImageIndex]=useState(getInitialImageIndex);// Auto-sync to first mapped image when selection changes (initial mount and changes)\nuseEffect(()=>{if(!variantImageMapping||!selectedVariantId)return;const nums=extractImageNumbersForVariant(variantImageMapping,selectedVariantId);if(nums[0]){const idx=Number(nums[0])-1;if(idx>=0&&idx<images.length)setCurrentImageIndex(idx);}},[variantImageMapping,selectedVariantId,images.length]);// Set up global sync listener\nuseVariantImageSync(productId,images,setCurrentImageIndex);return{currentImageIndex,setCurrentImageIndex};}/**\n * Hook to handle variant selection when clicking swatches\n */export function useSwatchClick(variantImageMapping,variants,fullIdx){const handleSwatchClick=()=>{if(!variantImageMapping)return;const variantId=getVariantIdForImageNumber(variantImageMapping,fullIdx+1);if(!variantId)return;const variant=variants.find(v=>String(v.id)===String(variantId));if(!variant)return;// Note: Variant selection logic would go here if needed\n// Currently just prevents the click if no variant found\n};return handleSwatchClick;}\nexport const __FramerMetadata__ = {\"exports\":{\"useSwatchClick\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useShopifyProductData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useGalleryImages\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useVariantImageSync\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useGalleryState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useVariantImageMapping\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSelectedVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{getObjectFit}from\"https://framerusercontent.com/modules/Yka9BTwP6pnUEgruT9LS/Jc9IxeCuGijc2VjPdP2l/Helpers.js\";import{useSwatchClick}from\"https://framerusercontent.com/modules/3Um7Da0PioNPYdqeX5Ez/6pq441btw51VtIysVhqg/Hooks.js\";// ------------------------------------------------------------ //\n// SUB-COMPONENTS\n// ------------------------------------------------------------ //\nexport default function Swatch(props){const{swatchConfig,isSelected}=props;const handleSwatchClick=useSwatchClick(props.variantImageMapping,props.variants,props.imageIndex);const defaultBorderColor=getBorderColor(swatchConfig.border.default);const selectedBorderColor=getBorderColor(swatchConfig.border.selected);const borderStyle=swatchConfig.border.default.borderStyle||\"solid\";const wrapperStyles={display:\"inline-flex\",borderRadius:swatchConfig.borderRadius,borderWidth:1,borderStyle:borderStyle,cursor:\"pointer\"};const imageStyles={width:swatchConfig.width,height:swatchConfig.height,objectFit:getObjectFit(swatchConfig.imageFit),objectPosition:swatchConfig.imageFit===\"fill\"?`${swatchConfig.focalPoint.x}% ${swatchConfig.focalPoint.y}%`:undefined,borderRadius:adjustBorderRadius(swatchConfig.borderRadius,1),borderWidth:1,borderStyle:borderStyle,background:swatchConfig.background||\"transparent\",display:\"block\"};const borderTransition={duration:.2,ease:\"easeOut\"};function handleClick(){props.onClick();handleSwatchClick();}return /*#__PURE__*/_jsx(motion.div,{style:wrapperStyles,animate:{borderColor:isSelected?selectedBorderColor:\"rgba(0, 0, 0, 0)\"},initial:false,transition:borderTransition,onClick:handleClick,children:/*#__PURE__*/_jsx(motion.img,{src:props.src,alt:\"\",style:imageStyles,initial:false,animate:{borderColor:isSelected?selectedBorderColor:defaultBorderColor},transition:borderTransition})});}// ------------------------------------------------------------ //\n// UTILITY FUNCTIONS\n// ------------------------------------------------------------ //\n/**\n * Extracts border color from BorderProps\n */function getBorderColor(borderProps){if(borderProps.borderColor){return borderProps.borderColor;}if(borderProps.border){const parts=borderProps.border.split(\" \");if(parts.length>=3){return parts.slice(2).join(\" \");}}return\"transparent\";}/**\n * Adjusts border radius to account for nested border\n */function adjustBorderRadius(borderRadius,offset){const match=borderRadius.match(/^(\\d+(?:\\.\\d+)?)(px|%|em|rem)?$/);if(match){const value=parseFloat(match[1]);const unit=match[2]||\"px\";const adjusted=Math.max(0,value-offset);return`${adjusted}${unit}`;}return borderRadius;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Swatch\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SwatchConfigProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useEffect,useState}from\"react\";import{isBrowserFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";export function useIsMobile(){const isBrowser=isBrowserFn();const[isMobile,setIsMobile]=useState(()=>{if(!isBrowser)return false;return window.innerWidth<768;});useEffect(()=>{if(!isBrowser)return;let timeoutId;const handleResize=()=>{clearTimeout(timeoutId);timeoutId=setTimeout(()=>{setIsMobile(window.innerWidth<768);},100);};window.addEventListener(\"resize\",handleResize);return()=>{window.removeEventListener(\"resize\",handleResize);clearTimeout(timeoutId);};},[isBrowser]);return isMobile;}\nexport const __FramerMetadata__ = {\"exports\":{\"useIsMobile\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Use_is_mobile.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{useIsMobile}from\"https://framerusercontent.com/modules/bbjyVb2V57Nhjs1gu9rH/psCLJv7nwKIGTQiOlmIi/Use_is_mobile.js\";import{isBrowserFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";export default function Lightbox(props){const{images,currentIndex,onClose,onNext,onPrev,alt,lightboxConfig}=props;const isMobile=useIsMobile();const isBrowser=isBrowserFn();// Keyboard navigation\nuseEffect(()=>{if(!isBrowser)return;const handleKeyDown=e=>{if(e.key===\"Escape\"){onClose();}else if(e.key===\"ArrowLeft\"){onPrev();}else if(e.key===\"ArrowRight\"){onNext();}};document.addEventListener(\"keydown\",handleKeyDown);// Prevent body scroll when lightbox is open\ndocument.body.style.overflow=\"hidden\";return()=>{document.removeEventListener(\"keydown\",handleKeyDown);document.body.style.overflow=\"\";};},[onClose,onNext,onPrev,isBrowser]);const handleBackdropClick=e=>{if(e.target===e.currentTarget){onClose();}};const handleNext=()=>{if(currentIndex<images.length-1){onNext();}};const handlePrev=()=>{if(currentIndex>0){onPrev();}};return /*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},onClick:handleBackdropClick,style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,backgroundColor:lightboxConfig.overlayBackground,zIndex:9999,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"zoom-out\"},children:[/*#__PURE__*/_jsx(motion.button,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:onClose,style:{position:\"absolute\",top:\"20px\",right:\"20px\",width:\"40px\",height:\"40px\",borderRadius:\"50%\",border:\"none\",backgroundColor:\"rgba(255, 255, 255, 0.1)\",color:\"white\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:\"24px\",fontWeight:\"bold\",transition:\"background-color 0.2s\"},whileHover:{backgroundColor:\"rgba(255, 255, 255, 0.2)\"},whileTap:{scale:.95},children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M15 5L5 15M5 5L15 15\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(motion.button,{initial:{opacity:currentIndex===0?.5:1},animate:{opacity:currentIndex===0?.5:1},exit:{opacity:currentIndex===0?.5:1},onClick:handlePrev,style:{position:\"absolute\",left:isMobile?\"calc(50% - 60px)\":\"20px\",bottom:isMobile?\"40px\":\"auto\",width:`${lightboxConfig.prevButtonStyles.size}px`,height:`${lightboxConfig.prevButtonStyles.size}px`,borderRadius:lightboxConfig.prevButtonStyles.borderRadius,border:\"none\",backgroundColor:lightboxConfig.prevButtonStyles.backgroundColor,color:lightboxConfig.prevButtonStyles.svgColor,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background-color 0.2s\"},whileHover:{backgroundColor:lightboxConfig.prevButtonStyles.hoverBackgroundColor},whileTap:{scale:lightboxConfig.prevButtonStyles.tapScale},disabled:currentIndex===0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M15 18L9 12L15 6\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(motion.button,{initial:{opacity:currentIndex===images.length-1?.5:1},animate:{opacity:currentIndex===images.length-1?.5:1},exit:{opacity:currentIndex===images.length-1?.5:1},onClick:handleNext,style:{position:\"absolute\",left:isMobile?\"calc(50%)\":\"auto\",right:isMobile?\"auto\":\"20px\",bottom:isMobile?\"40px\":\"auto\",width:`${lightboxConfig.nextButtonStyles.size}px`,height:`${lightboxConfig.nextButtonStyles.size}px`,borderRadius:lightboxConfig.nextButtonStyles.borderRadius,border:\"none\",backgroundColor:lightboxConfig.nextButtonStyles.backgroundColor,color:lightboxConfig.nextButtonStyles.svgColor,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background-color 0.2s\"},whileHover:{backgroundColor:lightboxConfig.nextButtonStyles.hoverBackgroundColor},whileTap:{scale:lightboxConfig.nextButtonStyles.tapScale},disabled:currentIndex===images.length-1,children:/*#__PURE__*/_jsx(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M9 18L15 12L9 6\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(AnimatePresence,{mode:\"popLayout\",initial:false,children:/*#__PURE__*/_jsx(motion.img,{initial:{opacity:.7},animate:{opacity:1},exit:{opacity:.7},src:images[currentIndex],alt:alt||\"\",style:{maxWidth:\"90vw\",maxHeight:\"90vh\",objectFit:\"contain\",cursor:\"zoom-out\",// position relative helps with layout animations\nposition:\"relative\",borderRadius:lightboxConfig.borderRadius},transition:{duration:.3,ease:\"easeInOut\",// Separate opacity transition for smoother crossfade\nopacity:{duration:.2}}},currentIndex)})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Lightbox\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lightbox.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useRef}from\"react\";import{getObjectFit}from\"https://framerusercontent.com/modules/Yka9BTwP6pnUEgruT9LS/Jc9IxeCuGijc2VjPdP2l/Helpers.js\";export default function ZoomImage(props){const{src,alt,imageFit,focalPoint,zoomConfig,onClick,cursor}=props;const[isHovering,setIsHovering]=useState(false);const[transformOrigin,setTransformOrigin]=useState(\"50% 50%\");const containerRef=useRef(null);const handleMouseMove=e=>{if(!zoomConfig.enabled||!containerRef.current)return;const container=containerRef.current;const rect=container.getBoundingClientRect();const x=(e.clientX-rect.left)/rect.width*100;const y=(e.clientY-rect.top)/rect.height*100;setTransformOrigin(`${x}% ${y}%`);};const handleMouseEnter=()=>{if(zoomConfig.enabled){setIsHovering(true);}};const handleMouseLeave=()=>{setIsHovering(false);// Don't reset transformOrigin - let the image zoom out from the last cursor position\n// Since scale goes to 1, the transform origin doesn't affect the final visual\n};const scale=isHovering&&zoomConfig.enabled?zoomConfig.zoomLevel/100:1;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,onMouseMove:handleMouseMove,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onClick:onClick,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",cursor:cursor||\"default\"},children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt,style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:getObjectFit(imageFit),objectPosition:imageFit===\"fill\"?`${focalPoint.x}% ${focalPoint.y}%`:undefined,transform:`scale(${scale})`,transformOrigin:transformOrigin,transition:\"transform 0.3s ease-out\"}})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ZoomImage\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Zoom_image.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";import{AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import{isOnFramerCanvasFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";import GalleryEmptyCanvasState from\"https://framerusercontent.com/modules/l1z5Z7HKu7jw66Txaa5F/7aL6JiqExNvheuIFD72s/State_empty_canvas.js\";import{useShopifyProductData,useGalleryImages,useSelectedVariant,useVariantImageMapping,useGalleryState}from\"https://framerusercontent.com/modules/3Um7Da0PioNPYdqeX5Ez/6pq441btw51VtIysVhqg/Hooks.js\";import Swatch from\"https://framerusercontent.com/modules/7wU9mRDjXO6UTdjgi9UD/nUfbnunCYjAXBDQKMI3j/Swatch.js\";import{SHARED_COLORS}from\"https://framerusercontent.com/modules/Nrs4jz2AAEOfEZRQEQij/7Ao2SBt1Ssf683HHXgzl/Shared_styles.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL,VARIANT_IMAGE_MAPPING_DESCRIPTION}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/zpYQI5Hzt8wx5QiaCjMr/Shared_props.js\";import Lightbox from\"https://framerusercontent.com/modules/EAtAInyNWWh0slvVOxX5/DVOlG0u1TUVYEqCXFtQn/Lightbox.js\";import ZoomImage from\"https://framerusercontent.com/modules/E8uvFgVk9lf9dvq1WmMl/HsfI3mZpqPD0s34wqkoG/Zoom_image.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 800\n * @framerDisableUnlink\n */export default function Gallery(props){const isOnFramerCanvas=isOnFramerCanvasFn();// Parse Shopify product data\nconst{productId,variants}=useShopifyProductData(props.shopifyData);// Get selected variant\nconst selectedVariantId=useSelectedVariant(productId,variants);// Get images array from props\nconst images=useGalleryImages(props);// Get variant-image mapping utilities\nconst{getInitialImageIndex,variantImageIndices}=useVariantImageMapping(props.variantImageMapping,selectedVariantId,images);// Manage gallery state\nconst{currentImageIndex,setCurrentImageIndex}=useGalleryState(props.variantImageMapping,selectedVariantId,images,getInitialImageIndex,productId);// Lightbox state\nconst[isLightboxOpen,setIsLightboxOpen]=useState(false);const[lightboxImageIndex,setLightboxImageIndex]=useState(0);// When on Framer canvas, show light content with default images\nif(isOnFramerCanvas&&!props.image1?.src){return /*#__PURE__*/_jsx(GalleryEmptyCanvasState,{imageFit:props.imageFit,focalPoint:props.focalPoint,showSwatches:props.showSwatches});}if(!productId||!images.length)return null;const isLeftPosition=props.swatchConfig.position===\"left\";// Get lightbox images (only variant images)\nconst lightboxImages=variantImageIndices.map(idx=>images[idx]);const initialLightboxIndex=variantImageIndices.indexOf(currentImageIndex);// Lightbox navigation handlers\nconst handleLightboxOpen=()=>{setLightboxImageIndex(initialLightboxIndex);setIsLightboxOpen(true);};const handleLightboxClose=()=>{setIsLightboxOpen(false);};const handleLightboxNext=()=>{if(lightboxImageIndex<lightboxImages.length-1){const nextIndex=lightboxImageIndex+1;setLightboxImageIndex(nextIndex);// Update gallery index immediately to keep it in sync for close animation\nconst newGalleryIndex=variantImageIndices[nextIndex];if(newGalleryIndex!==undefined){setCurrentImageIndex(newGalleryIndex);}}};const handleLightboxPrev=()=>{if(lightboxImageIndex>0){const prevIndex=lightboxImageIndex-1;setLightboxImageIndex(prevIndex);// Update gallery index immediately to keep it in sync for close animation\nconst newGalleryIndex=variantImageIndices[prevIndex];if(newGalleryIndex!==undefined){setCurrentImageIndex(newGalleryIndex);}}};return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:isLeftPosition?\"row\":\"column\",gap:props.gap,height:\"100%\",width:\"100%\"},children:[props.showSwatches&&isLeftPosition&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:props.swatchConfig.gap,alignItems:\"center\",overflowY:props.swatchConfig.allowWrap?\"visible\":\"auto\",maxHeight:props.swatchConfig.allowWrap?\"none\":\"100%\"},children:variantImageIndices.map(fullIdx=>/*#__PURE__*/_jsx(Swatch,{src:images[fullIdx],isSelected:fullIdx===currentImageIndex,onClick:()=>setCurrentImageIndex(fullIdx),variantImageMapping:props.variantImageMapping,variants:variants,imageIndex:fullIdx,swatchConfig:props.swatchConfig},images[fullIdx]+String(fullIdx)))}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,overflow:\"hidden\",height:\"100%\",width:isLeftPosition?\"auto\":\"100%\",borderRadius:props.borderRadius},children:/*#__PURE__*/_jsx(ZoomImage,{src:images[currentImageIndex],alt:(variants.find(v=>v.id===selectedVariantId)?.title)||\"\",imageFit:props.imageFit,focalPoint:props.focalPoint,zoomConfig:props.zoomConfig,onClick:props.lightboxConfig.enabled?handleLightboxOpen:undefined,cursor:props.lightboxConfig.enabled?\"zoom-in\":\"default\"})}),props.showSwatches&&!isLeftPosition&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:props.swatchConfig.allowWrap?\"wrap\":\"nowrap\",gap:props.swatchConfig.gap,overflowX:props.swatchConfig.allowWrap?\"visible\":\"auto\"},children:variantImageIndices.map(fullIdx=>/*#__PURE__*/_jsx(Swatch,{src:images[fullIdx],isSelected:fullIdx===currentImageIndex,onClick:()=>setCurrentImageIndex(fullIdx),variantImageMapping:props.variantImageMapping,variants:variants,imageIndex:fullIdx,swatchConfig:props.swatchConfig},images[fullIdx]+String(fullIdx)))}),props.lightboxConfig.enabled&&/*#__PURE__*/_jsx(AnimatePresence,{children:isLightboxOpen&&/*#__PURE__*/_jsx(Lightbox,{images:lightboxImages,currentIndex:lightboxImageIndex,onClose:handleLightboxClose,onNext:handleLightboxNext,onPrev:handleLightboxPrev,layoutId:`gallery-main-image-${productId}-${variantImageIndices[lightboxImageIndex]}`,alt:(variants.find(v=>v.id===selectedVariantId)?.title)||\"\",lightboxConfig:props.lightboxConfig})})]});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\nconst generateGalleryPropertyControls=()=>{const controls={shopifyData:{type:ControlType.String,description:SHOPIFY_DATA_DESCRIPTION},variantImageMapping:{type:ControlType.String,title:\"Variant Image Mapping\",description:VARIANT_IMAGE_MAPPING_DESCRIPTION},imageFit:{title:\"Image Fit\",type:ControlType.Enum,options:[\"fill\",\"fit\",\"stretch\"],optionTitles:[\"Fill\",\"Fit\",\"Stretch\"],defaultValue:\"fill\"},focalPoint:{type:ControlType.Object,title:\"Focal Point\",buttonTitle:\"X, Y Position\",controls:{x:{type:ControlType.Number,title:\"X Position\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",description:\"Horizontal focal point (0% = left, 100% = right)\"},y:{type:ControlType.Number,title:\"Y Position\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",description:\"Vertical focal point (0% = top, 100% = bottom)\"}},hidden:props=>props.imageFit!==\"fill\",defaultValue:{x:50,y:50}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"},showSwatches:{type:ControlType.Boolean,title:\"Show Swatches\",defaultValue:true},swatchConfig:{type:ControlType.Object,title:\"Swatch Config\",controls:{position:{type:ControlType.Enum,title:\"Position\",options:[\"bottom\",\"left\"],optionTitles:[\"Bottom\",\"Left\"],defaultValue:\"bottom\",displaySegmentedControl:true},width:{type:ControlType.Number,title:\"Width\",defaultValue:64,unit:\"px\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:64,unit:\"px\"},imageFit:{title:\"Image Fit\",type:ControlType.Enum,options:[\"fill\",\"fit\",\"stretch\"],optionTitles:[\"Fill\",\"Fit\",\"Stretch\"],defaultValue:\"fit\"},focalPoint:{type:ControlType.Object,title:\"Focal Point\",buttonTitle:\"X, Y Position\",controls:{x:{type:ControlType.Number,title:\"X Position\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",description:\"Horizontal focal point (0% = left, 100% = right)\"},y:{type:ControlType.Number,title:\"Y Position\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",description:\"Vertical focal point (0% = top, 100% = bottom)\"}},hidden:props=>props.imageFit!==\"fill\",defaultValue:{x:50,y:50}},border:{type:ControlType.Object,title:\"Border\",buttonTitle:\"Style\",controls:{default:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Default\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.1)\"}},selected:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Selected\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:SHARED_COLORS.foreground}}},defaultValue:{default:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.1)\"},selected:{borderWidth:2,borderStyle:\"solid\",borderColor:SHARED_COLORS.foreground}}},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"6px\"},background:{type:ControlType.Color,title:\"Background\",optional:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:6,min:0,step:1,displayStepper:true,unit:\"px\",description:\"Space between swatches\"},allowWrap:{type:ControlType.Boolean,title:\"Allow Wrap\",defaultValue:true,description:\"Allow swatches to wrap to new lines. When disabled, swatches will be scrollable.\"}},hidden:props=>!props.showSwatches,defaultValue:{position:\"bottom\",width:64,height:64,imageFit:\"fit\",border:{default:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.1)\"},selected:{borderWidth:2,borderStyle:\"solid\",borderColor:SHARED_COLORS.foreground}},borderRadius:\"6px\",gap:6,allowWrap:true}},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,step:1,displayStepper:true,unit:\"px\",description:\"Space between swatches and main image\"},lightboxConfig:{type:ControlType.Object,title:\"Lightbox Config\",buttonTitle:\"Enabled, Styles, etc.\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},overlayBackground:{type:ControlType.Color,title:\"Overlay Background\",defaultValue:\"rgba(0, 0, 0, 0.9)\",hidden:props=>!props.enabled},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Image Radius\",defaultValue:\"0px\",hidden:props=>!props.enabled},prevButtonStyles:{type:ControlType.Object,title:\"Previous Button\",buttonTitle:\"Size, Radius, Background, Icon\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:50,min:20,max:100,step:1,displayStepper:true,unit:\"px\"},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50%\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(255, 255, 255, 0.1)\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"rgba(255, 255, 255, 0.2)\"},svgColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#ffffff\"},tapScale:{type:ControlType.Number,title:\"Tap Scale\",defaultValue:.95,min:0,max:1,step:.01}},defaultValue:{size:50,borderRadius:\"50%\",backgroundColor:\"rgba(255, 255, 255, 0.1)\",svgColor:\"#ffffff\",tapScale:.95,hoverBackgroundColor:\"rgba(255, 255, 255, 0.2)\"},hidden:props=>!props.enabled},nextButtonStyles:{type:ControlType.Object,title:\"Next Button\",buttonTitle:\"Size, Radius, Background, Icon\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:50,min:20,max:100,step:1,displayStepper:true,unit:\"px\"},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type in this Framer npm version\ntype:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50%\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(255, 255, 255, 0.1)\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"rgba(255, 255, 255, 0.2)\"},svgColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#ffffff\"},tapScale:{type:ControlType.Number,title:\"Tap Scale\",defaultValue:.95,min:0,max:1,step:.01}},defaultValue:{size:50,borderRadius:\"50%\",backgroundColor:\"rgba(255, 255, 255, 0.1)\",svgColor:\"#ffffff\",tapScale:.95,hoverBackgroundColor:\"rgba(255, 255, 255, 0.2)\"},hidden:props=>!props.enabled}}},zoomConfig:{type:ControlType.Object,title:\"Zoom Config\",buttonTitle:\"Enabled, Zoom Level\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:false,description:\"Enable zoom functionality when hovering over the main image.\"},zoomLevel:{type:ControlType.Number,title:\"Zoom Level\",defaultValue:150,min:100,max:500,step:1,unit:\"%\",hidden:props=>!props.enabled}},defaultValue:{enabled:true,zoomLevel:150}},// this need to be the last one\nnumberOfImages:{type:ControlType.Number,title:\"# of Images\",defaultValue:10,min:1,max:30,step:1,displayStepper:true}};// Dynamically generate image controls based on numberOfImages\nfor(let i=1;i<=30;i++){controls[`image${i}`]={type:ControlType.ResponsiveImage,title:`Image ${i}`,hidden:props=>props.numberOfImages<i};}return{...controls,...SUPPORT_CONTROL};};addPropertyControls(Gallery,generateGalleryPropertyControls());Gallery.displayName=\"Smart Gallery\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Gallery\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"800\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo,useState,useEffect}from\"react\";import{QueryClientProvider}from\"https://framerusercontent.com/modules/EsOvuK0xi7z7RIQRkokm/o6ldhcInFD0f6tYPAqS1/Tanstack_query.js\";import{getQueryClient}from\"https://framerusercontent.com/modules/hfxq8MeR8YqgxUjDt3zM/SevNFArcD3y2JLRMZBW2/Tanstack_query_client.js\";import{useProductSelectionStore}from\"https://framerusercontent.com/modules/8l7kldZFdo4Q33wHQBGB/R6492SgoPzpAhTwJ6Uq8/Product_selection_store.js\";import{parseShopifyData}from\"https://framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/rkjqZclSkQOy0QCpfAmc/Parse_shopify_data.js\";import{useInventory}from\"https://framerusercontent.com/modules/DW1wzS65glja20YJJb0w/BVuIt9pNWmm6EXzrBswo/Use_inventory.js\";import{extractVariantId}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/oWpbtfeZjvritjXviKiH/Shopify_utils.js\";import PlusSvg from\"https://framerusercontent.com/modules/CgNesoEVhclZxcf3DGoV/KiFqdjKmxFukmUMhyMDX/Plus.js\";import MinusSvg from\"https://framerusercontent.com/modules/rg6FA2ZzLed1GXAPqbZS/mzbz3S2bGl9kzIhDyRAM/Minus.js\";import{PresetSecondaryButtonStyleControls,PresetButtonContentControls,CustomButtonControls,overrideControlDefaults}from\"https://framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/BHRSzpNTK9tPbKGRIYxx/Shared_button_props.js\";import PresetButton from\"https://framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/qJhHdmQsP7KnXdnJHkkc/Preset_button.js\";import CustomButtonWrapper from\"https://framerusercontent.com/modules/KkMHEXBTzNGLCAGsRLrm/C2sk9cjUnc3YE4Ebu9Zq/Custom_button_wrapper.js\";import Input,{InputStyleControls,InputContentControls}from\"https://framerusercontent.com/modules/8tTWwqu9i87Vk9zESDn0/jLTB1STPCM3FZ9dtVImL/Input.js\";import{SHOPIFY_DATA_DESCRIPTION,SUPPORT_CONTROL}from\"https://framerusercontent.com/modules/G9UZNzEc4NZQrMJzPvWx/zpYQI5Hzt8wx5QiaCjMr/Shared_props.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nfunction QuantityInputInner(props){const shopifyData=parseShopifyData(props.shopifyData);const selectedVariantId=useProductSelectionStore(s=>s.getSelectedVariant(shopifyData.id,shopifyData.variants));const quantity=useProductSelectionStore(s=>s.getQuantity(selectedVariantId));const setQuantity=useProductSelectionStore(s=>s.setQuantity);const{data:inventoryData}=useInventory(shopifyData.id);const inventoryMax=useMemo(()=>{const variants=inventoryData?.data?.product?.variants?.edges??[];const variant=variants.find(v=>extractVariantId(v.node.id)===selectedVariantId);const qty=variant?.node?.quantityAvailable;// null or -1 means not tracked — no inventory cap\nif(qty===null||qty===undefined||qty===-1)return Infinity;return qty;},[inventoryData,selectedVariantId]);// Local state for input value to allow empty string\nconst[inputValue,setInputValue]=useState(String(quantity));const min=props.min??1;const max=Math.min(props.max??Infinity,inventoryMax);const step=props.step??1;// Init quantity to min if below min\nuseEffect(()=>{if(quantity<min){setQuantity(selectedVariantId,min);}},[selectedVariantId,min,quantity,setQuantity]);// Sync local state with store quantity changes\nuseEffect(()=>{setInputValue(String(quantity));},[quantity]);const ariaLabel=useMemo(()=>{if(props.type===\"add\")return\"Increase quantity\";if(props.type===\"subtract\")return\"Decrease quantity\";return\"Quantity\";},[props.type]);const handleClickAdd=()=>{if(quantity>=max)return;setQuantity(selectedVariantId,Math.min(max,quantity+step));};const handleClickSubtract=()=>{if(quantity<=min)return;setQuantity(selectedVariantId,Math.max(min,quantity-step));};const handleChangeInput=e=>{const value=e.target.value;// Update local state immediately to allow deletion\nsetInputValue(value);// If empty, don't update store yet\nif(value===\"\"){return;}const numValue=Number(value);if(!Number.isFinite(numValue))return;if(numValue<1){// Allow partial input like typing \"1\" then \"0\" for \"10\"\nreturn;}// Update store with valid value, clamped to max\nsetQuantity(selectedVariantId,Math.min(max,Math.floor(numValue)));};const handleBlurInput=e=>{const value=e.target.value;const numValue=Number(value);if(value===\"\"||!Number.isFinite(numValue)||numValue<min){setQuantity(selectedVariantId,min);setInputValue(String(min));}else if(numValue>max){setQuantity(selectedVariantId,max);setInputValue(String(max));}};const addDisabled=quantity>=max;if(props.type===\"add\"&&props.buttonType===\"custom\"){return /*#__PURE__*/_jsx(CustomButtonWrapper,{onClick:handleClickAdd,customButtonSize:props.customButtonSize,disabled:addDisabled,disabledButton:props.customButtonDisabled?.[0],children:props.customButton});}if(props.type===\"add\"&&props.buttonType===\"preset\"){return /*#__PURE__*/_jsx(PresetButton,{onClick:handleClickAdd,font:props.presetButtonStyle.font,leftIcon:props.leftIcon?.[0]??/*#__PURE__*/_jsx(PlusSvg,{style:{width:\"16px\",height:\"16px\"}}),rightIcon:props.rightIcon?.[0],presetButtonStyle:props.presetButtonStyle,disabled:addDisabled});}if(props.type===\"subtract\"&&props.buttonType===\"custom\"){return /*#__PURE__*/_jsx(CustomButtonWrapper,{onClick:handleClickSubtract,customButtonSize:props.customButtonSize,disabledButton:props.customButtonDisabled?.[0],children:props.customButton});}if(props.type===\"subtract\"&&props.buttonType===\"preset\"){return /*#__PURE__*/_jsx(PresetButton,{onClick:handleClickSubtract,font:props.presetButtonStyle.font,leftIcon:props.leftIcon?.[0]??/*#__PURE__*/_jsx(MinusSvg,{style:{width:\"16px\",height:\"16px\"}}),rightIcon:props.rightIcon?.[0],presetButtonStyle:props.presetButtonStyle});}return /*#__PURE__*/_jsx(Input,{\"aria-label\":ariaLabel,type:props.inputType,min:props.min,max:props.max,step:props.step,value:inputValue,onChange:handleChangeInput,onBlur:handleBlurInput,onFocus:e=>e.currentTarget.select(),inputStyle:props.inputStyle});}// ------------------------------------------------------------ //\n// MAIN EXPORT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */export default function QuantityInput(props){const queryClient=getQueryClient();return /*#__PURE__*/_jsx(QueryClientProvider,{client:queryClient,children:/*#__PURE__*/_jsx(QuantityInputInner,{...props})});}// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(QuantityInput,{type:{type:ControlType.Enum,options:[\"subtract\",\"input\",\"add\"],optionTitles:[\"-\",\"123\",\"+\"],defaultValue:\"input\",displaySegmentedControl:true},shopifyData:{type:ControlType.String,defaultValue:\"\",description:SHOPIFY_DATA_DESCRIPTION},step:{type:ControlType.Number,defaultValue:1,min:1,step:1,displayStepper:true},min:{type:ControlType.Number,defaultValue:1,min:1,step:1,displayStepper:true},max:{type:ControlType.Number,defaultValue:99,min:1,step:1,displayStepper:true},...overrideControlDefaults(CustomButtonControls,{\"buttonType.hidden\":props=>props.type===\"input\",\"customButton.hidden\":props=>props.buttonType===\"preset\"||props.type===\"input\",\"customButtonSize.hidden\":props=>props.buttonType===\"preset\"||props.type===\"input\"}),...overrideControlDefaults(PresetSecondaryButtonStyleControls,{\"presetButtonStyle.hidden\":props=>props.buttonType===\"custom\"||props.type===\"input\"}),...overrideControlDefaults(PresetButtonContentControls,{\"leftIcon.hidden\":props=>props.buttonType===\"custom\"||props.type===\"input\",\"leftIcon.title\":\"Icon\",\"rightIcon.hidden\":true,\"text.hidden\":true}),...overrideControlDefaults(InputStyleControls,{\"inputStyle.hidden\":props=>props.type!==\"input\"}),...overrideControlDefaults(InputContentControls,{\"placeholder.hidden\":props=>props.type!==\"input\",\"disabled.hidden\":props=>props.type!==\"input\",\"inputType.hidden\":true}),...SUPPORT_CONTROL});QuantityInput.displayName=\"Quantity Input\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuantityInput\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"40\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}