{"version":3,"file":"Input.DGDsASrZ.mjs","names":["useQuery","_Fragment","React","_Fragment","QueryClientProvider","useId"],"sources":["https:/framerusercontent.com/modules/ULfRcpFPm40RheG8xy3S/7uhk78YusjwKoxsL88fS/Shared_config.js","https:/framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/7xRaFLeVY9UkDbqtIhhH/Shopify_utils.js","https:/framerusercontent.com/modules/6LuZie9RwIDGFEc0gNxM/OzDLLzwqWkxvJOJ3SwyK/Shopify_inventory.js","https:/framerusercontent.com/modules/UgQvuo7wJTpErxUawmaQ/CgLQZCVSUYMR16dNQQrb/Live_inventory_chunking.js","https:/framerusercontent.com/modules/4KSso1SpSEAQoZoYZAqF/TeAfFlFAvlB4C0wglxl9/Product_inventory_batch_service.js","https:/framerusercontent.com/modules/OIbspRCoz1lUD31SHijS/bzGdRjqA87L10iGhxGb2/Shopify_inventory_batcher.js","https:/framerusercontent.com/modules/DW1wzS65glja20YJJb0w/UbXPw9UzjrdH0JywQuKA/Use_inventory.js","https:/framerusercontent.com/modules/rBCLWR4S69MLTQ5ZpxAH/2r4ruxRQRUOEBlTMh5zc/Inventory_state.js","https:/framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/dm2Ulq3gIc0MD3heuKhx/Shared_button_props.js","https:/framerusercontent.com/modules/z7s7d2NhYNciN7G09hdf/Am5BTAlgzE3rws6PH1Qt/Loader.js","https:/framerusercontent.com/modules/J14wQOiI0O01kyXMgenS/ODFPbfbc3Lw68NQPcyta/Loading_spinner.js","https:/framerusercontent.com/modules/a6C1Qq7kxeKULOsvIpdv/JrJAMAbNq3ZT9ZgMxjF1/Preset_button.js","https:/framerusercontent.com/modules/KkMHEXBTzNGLCAGsRLrm/C2sk9cjUnc3YE4Ebu9Zq/Custom_button_wrapper.js","https:/framerusercontent.com/modules/qGSs7SULtHSo8Msf1WUy/vraFd5f3jmKFoHJ9xWa7/Cart.js","https:/framerusercontent.com/modules/zParpRuqXNNcrHNZHUCA/8tKh3drcYc8hZKSgXnlf/Query_client_wrapper.js","https:/framerusercontent.com/modules/biKipS1zWpT4tZ0cZhyk/1l8XdClJld0xwptzsD73/UseCurrentLocation.js","https:/framer.com/m/UseCurrentLocation-oZyA.js@1l8XdClJld0xwptzsD73","https:/framerusercontent.com/modules/br9bXgadWgfJaD0swwuT/jUc9YNpAtX8KUoSpiBD2/Shared_text_decoration_props.js","https:/framerusercontent.com/modules/3QrZAq5uElJQ8m88NKWY/5xJkuuHwMm3iKqkoNzBk/Subscriptions_utils.js","https:/framerusercontent.com/modules/KV16nQZJzK2PakIJS3ds/mMwI0Z7Bn85AP14ADxu9/Shared_images.js","https:/framerusercontent.com/modules/CgNesoEVhclZxcf3DGoV/KiFqdjKmxFukmUMhyMDX/Plus.js","https:/framerusercontent.com/modules/rg6FA2ZzLed1GXAPqbZS/mzbz3S2bGl9kzIhDyRAM/Minus.js","https:/framerusercontent.com/modules/8tTWwqu9i87Vk9zESDn0/wFbi1XHqJACWlU9Zlwrv/Input.js"],"sourcesContent":["export const OPEN_CART_EVENT=\"framership-open-cart\";export const CLOSE_CART_EVENT=\"framership-close-cart\";export const CLOSE_QUICK_VIEW_EVENT=\"frameship-close-quick-view\";\nexport const __FramerMetadata__ = {\"exports\":{\"OPEN_CART_EVENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CLOSE_QUICK_VIEW_EVENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CLOSE_CART_EVENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared_config.map","/**\n * Utility functions for working with Shopify GraphQL IDs (GIDs)\n */const CHECKOUT_TRACKING_PARAM_WHITELIST=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_id\",\"utm_term\",\"utm_content\",\"gclid\",\"fbclid\",\"msclkid\",\"ttclid\"];/**\n * Creates a Shopify GraphQL ID (GID) for any Shopify resource type\n * @param type - The Shopify resource type (e.g., \"Product\", \"ProductVariant\", \"Collection\")\n * @param id - The numeric/string ID of the resource\n * @returns The full GID string\n *\n * @example\n * createShopifyGid(\"Product\", \"123456789\") // \"gid://shopify/Product/123456789\"\n */export function createShopifyGid(type,id){return`gid://shopify/${type}/${id}`;}/**\n * Creates a Shopify Product GID\n * @param productId - The product ID\n * @returns The product GID\n *\n * @example\n * createProductGid(\"123456789\") // \"gid://shopify/Product/123456789\"\n */export function createProductGid(productId){return createShopifyGid(\"Product\",productId);}/**\n * Creates a Shopify ProductVariant GID\n * @param variantId - The variant ID\n * @returns The variant GID\n *\n * @example\n * createVariantGid(\"987654321\") // \"gid://shopify/ProductVariant/987654321\"\n */export function createVariantGid(variantId){return createShopifyGid(\"ProductVariant\",variantId);}/**\n * Creates a Shopify Collection GID\n * @param collectionId - The collection ID\n * @returns The collection GID\n *\n * @example\n * createCollectionGid(\"555666777\") // \"gid://shopify/Collection/555666777\"\n */export function createCollectionGid(collectionId){return createShopifyGid(\"Collection\",collectionId);}/**\n * Extracts the ID from a Shopify GraphQL ID (GID)\n * @param gid - The full GID string\n * @returns The extracted ID string\n * @throws Error if the GID format is invalid\n *\n * @example\n * extractIdFromGid(\"gid://shopify/Product/123456789\") // \"123456789\"\n */export function extractIdFromGid(gid){const match=gid.match(/^gid:\\/\\/shopify\\/[^\\/]+\\/(.+)$/);if(!match){throw new Error(`Invalid Shopify GID format: ${gid}`);}return match[1];}/**\n * Parses a Shopify GraphQL ID (GID) into its components\n * @param gid - The full GID string\n * @returns An object containing the resource type and ID\n * @throws Error if the GID format is invalid\n *\n * @example\n * parseShopifyGid(\"gid://shopify/Product/123456789\") // { type: \"Product\", id: \"123456789\" }\n */export function parseShopifyGid(gid){const match=gid.match(/^gid:\\/\\/shopify\\/([^\\/]+)\\/(.+)$/);if(!match){throw new Error(`Invalid Shopify GID format: ${gid}`);}return{type:match[1],id:match[2]};}/**\n * Extracts the product ID from a Shopify Product GID\n * @param gid - The product GID\n * @returns The product ID\n *\n * @example\n * extractProductId(\"gid://shopify/Product/123456789\") // \"123456789\"\n */export function extractProductId(gid){const{type,id}=parseShopifyGid(gid);if(type!==\"Product\"){throw new Error(`Expected Product GID, got ${type}: ${gid}`);}return id;}/**\n * Extracts the variant ID from a Shopify ProductVariant GID\n * @param gid - The variant GID\n * @returns The variant ID\n *\n * @example\n * extractVariantId(\"gid://shopify/ProductVariant/987654321\") // \"987654321\"\n */export function extractVariantId(gid){const{type,id}=parseShopifyGid(gid);if(type!==\"ProductVariant\"){throw new Error(`Expected ProductVariant GID, got ${type}: ${gid}`);}return id;}/**\n * Extracts the collection ID from a Shopify Collection GID\n * @param gid - The collection GID\n * @returns The collection ID\n *\n * @example\n * extractCollectionId(\"gid://shopify/Collection/555666777\") // \"555666777\"\n */export function extractCollectionId(gid){const{type,id}=parseShopifyGid(gid);if(type!==\"Collection\"){throw new Error(`Expected Collection GID, got ${type}: ${gid}`);}return id;}export function buildCheckoutRedirectUrl(checkoutUrl){const checkoutUrlObject=new URL(checkoutUrl);if(typeof window!==\"undefined\"){const currentUrl=new URL(window.location.href);for(const key of CHECKOUT_TRACKING_PARAM_WHITELIST){const currentValue=currentUrl.searchParams.get(key)?.trim();if(!currentValue)continue;if(checkoutUrlObject.searchParams.has(key))continue;checkoutUrlObject.searchParams.set(key,currentValue);}checkoutUrlObject.searchParams.set(\"return_url\",`${window.location.origin}/checkout-complete`);}return checkoutUrlObject.toString();}\nexport const __FramerMetadata__ = {\"exports\":{\"createShopifyGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createProductGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseShopifyGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractCollectionId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractIdFromGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createVariantGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractProductId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractVariantId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCollectionGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildCheckoutRedirectUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shopify_utils.map","import{createProductGid}from\"https://framerusercontent.com/modules/tzN8qHzrVYThnxhKObeP/7xRaFLeVY9UkDbqtIhhH/Shopify_utils.js\";export const SHOPIFY_INVENTORY_STALE_TIME=5*60*1e3;export function canonicalizeProductGid(productId){if(productId.startsWith(\"gid://shopify/Product/\"))return productId;return createProductGid(productId);}export function getShopifyInventoryQueryKey(context,productId){return[\"shopifyInventory\",context.shop,context.apiVersion,context.country??\"primary\",canonicalizeProductGid(productId)];}export function toLegacyInventoryResponse(snapshot){return{data:{product:{variants:{edges:Object.values(snapshot.variantsById).map(node=>({node})),pageInfo:{hasNextPage:!snapshot.variantsComplete}}}},errors:[]};}\nexport const __FramerMetadata__ = {\"exports\":{\"SHOPIFY_INVENTORY_STALE_TIME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"toLegacyInventoryResponse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getShopifyInventoryQueryKey\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ProductInventoryVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"canonicalizeProductGid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyInventoryContext\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ProductInventorySnapshot\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shopify_inventory.map","export const LIVE_PRODUCT_INVENTORY_CHUNK_SIZE=250;export const LIVE_PRODUCT_INVENTORY_CONCURRENCY=4;export function chunkValues(values,chunkSize=LIVE_PRODUCT_INVENTORY_CHUNK_SIZE){if(values.length===0){return[];}const chunks=[];for(let index=0;index<values.length;index+=chunkSize){chunks.push(values.slice(index,index+chunkSize));}return chunks;}export async function runWithBoundedConcurrency(items,concurrency,mapper){if(items.length===0){return[];}const results=new Array(items.length);let nextIndex=0;const workerCount=Math.min(Math.max(1,concurrency),items.length);async function worker(){while(true){const index=nextIndex;nextIndex+=1;if(index>=items.length){return;}results[index]=await mapper(items[index],index);}}await Promise.all(Array.from({length:workerCount},()=>worker()));return results;}\nexport const __FramerMetadata__ = {\"exports\":{\"LIVE_PRODUCT_INVENTORY_CONCURRENCY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"chunkValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LIVE_PRODUCT_INVENTORY_CHUNK_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"runWithBoundedConcurrency\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Live_inventory_chunking.map","import{shopifyClient}from\"https://framerusercontent.com/modules/c5gtsBimYk7u4sSXwOlt/FT8ohIrQkGjZoPqb6Add/Shopify_client.js\";import{canonicalizeProductGid}from\"https://framerusercontent.com/modules/6LuZie9RwIDGFEc0gNxM/OzDLLzwqWkxvJOJ3SwyK/Shopify_inventory.js\";import{chunkValues,LIVE_PRODUCT_INVENTORY_CHUNK_SIZE,LIVE_PRODUCT_INVENTORY_CONCURRENCY,runWithBoundedConcurrency}from\"https://framerusercontent.com/modules/UgQvuo7wJTpErxUawmaQ/CgLQZCVSUYMR16dNQQrb/Live_inventory_chunking.js\";const PRODUCT_INVENTORY_BATCH_QUERY=`#graphql\n  query GetProductInventoryBatch($ids: [ID!]!, $country: CountryCode)\n  @inContext(country: $country) {\n    nodes(ids: $ids) {\n      ... on Product {\n        id\n        availableForSale\n        totalInventory\n        variants(first: 250) {\n          nodes { id availableForSale quantityAvailable }\n          pageInfo { hasNextPage }\n        }\n      }\n    }\n  }\n`;function normalizeNode(node,fetchedAt){if(!node||typeof node.id!==\"string\"||!node.id)return null;const variantsById={};for(const variant of node.variants?.nodes??[]){if(typeof variant.id!==\"string\"||!variant.id)continue;variantsById[variant.id]={id:variant.id,availableForSale:variant.availableForSale===true,quantityAvailable:typeof variant.quantityAvailable===\"number\"&&Number.isFinite(variant.quantityAvailable)?variant.quantityAvailable:null};}return{productId:node.id,variantsById,productAvailableForSale:node.availableForSale===true,totalInventory:typeof node.totalInventory===\"number\"&&Number.isFinite(node.totalInventory)?node.totalInventory:null,variantsComplete:node.variants?.pageInfo?.hasNextPage!==true,fetchedAt};}async function fetchChunk(ids,country){const fetchedAt=Date.now();const result=await shopifyClient({query:PRODUCT_INVENTORY_BATCH_QUERY,variables:{ids,country:country||null}});if(result.errors.length>0||!result.data?.nodes){return{data:null,errors:result.errors.length?result.errors:[{message:\"Inventory returned no nodes.\"}]};}const data={};for(const node of result.data.nodes){const snapshot=normalizeNode(node,fetchedAt);if(snapshot)data[snapshot.productId]=snapshot;}return{data,errors:[]};}export async function getProductInventoryBatch({productGids,country}){const requestedIds=[...new Set(productGids.map(canonicalizeProductGid))].sort();const chunks=chunkValues(requestedIds,LIVE_PRODUCT_INVENTORY_CHUNK_SIZE);if(!chunks.length)return{data:{snapshotsById:{},resolvedIds:[],failedIds:[],missingIds:[],chunkCount:0},errors:[]};const results=await runWithBoundedConcurrency(chunks,LIVE_PRODUCT_INVENTORY_CONCURRENCY,ids=>fetchChunk(ids,country));const snapshotsById={};const resolvedIds=[];const failedIds=[];const errors=[];results.forEach((result,index)=>{if(!result.data){failedIds.push(...chunks[index]);errors.push(...result.errors);return;}resolvedIds.push(...chunks[index]);Object.assign(snapshotsById,result.data);});if(!resolvedIds.length)return{data:null,errors};return{data:{snapshotsById,resolvedIds,failedIds,missingIds:resolvedIds.filter(id=>!snapshotsById[id]),chunkCount:chunks.length},errors};}\nexport const __FramerMetadata__ = {\"exports\":{\"ProductInventoryBatchResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getProductInventoryBatch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{canonicalizeProductGid}from\"https://framerusercontent.com/modules/6LuZie9RwIDGFEc0gNxM/OzDLLzwqWkxvJOJ3SwyK/Shopify_inventory.js\";import{getProductInventoryBatch}from\"https://framerusercontent.com/modules/4KSso1SpSEAQoZoYZAqF/TeAfFlFAvlB4C0wglxl9/Product_inventory_batch_service.js\";const queues=new Map;const coverage=new Map;const coverageResolvers=new Map;function contextKey(context){return[context.shop,context.apiVersion,context.country??\"primary\"].join(\"|\");}function productKey(context,productId){return`${contextKey(context)}|${canonicalizeProductGid(productId)}`;}export function beginInventoryBatchCoverage(context,productIds){for(const productId of productIds){const key=productKey(context,productId);if(coverage.has(key))continue;coverage.set(key,new Promise(resolve=>{coverageResolvers.set(key,{resolve});}));}}export function finishInventoryBatchCoverage(context,productIds,snapshotsById){for(const productId of productIds){const key=productKey(context,productId);const resolver=coverageResolvers.get(key);const snapshot=snapshotsById[canonicalizeProductGid(productId)];resolver?.resolve(snapshot??null);coverage.delete(key);coverageResolvers.delete(key);}}async function flush(context,key){const requests=queues.get(key)??[];queues.delete(key);const productGids=[...new Set(requests.map(request=>request.productGid))];const result=await getProductInventoryBatch({productGids,country:context.country});const genericError=new Error(result.errors.map(error=>error.message).join(\"; \")||\"Inventory unavailable.\");for(const request of requests){const snapshot=result.data?.snapshotsById[request.productGid];if(snapshot)request.resolve(snapshot);else request.reject(genericError);}}export function requestProductInventory(context,productId){const covered=coverage.get(productKey(context,productId));if(covered){return covered.then(snapshot=>{if(snapshot)return snapshot;return requestProductInventory(context,productId);});}const key=contextKey(context);const productGid=canonicalizeProductGid(productId);const promise=new Promise((resolve,reject)=>{const queue=queues.get(key)??[];queue.push({productGid,resolve,reject});queues.set(key,queue);});if((queues.get(key)?.length??0)===1){queueMicrotask(()=>void flush(context,key));}return promise;}\nexport const __FramerMetadata__ = {\"exports\":{\"beginInventoryBatchCoverage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"requestProductInventory\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"finishInventoryBatchCoverage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useQuery}from\"https://framerusercontent.com/modules/EsOvuK0xi7z7RIQRkokm/8aYKGIHO4l4IQs8Fyj8V/Tanstack_query.js\";import{getShopifyConfig}from\"https://framerusercontent.com/modules/TgekT24FCXsp3m1M9KnX/EmTtwh9ht2RFHFqCjQuM/Get_shopify_config.js\";import{isOnFramerCanvasFn}from\"https://framerusercontent.com/modules/0cFx6PDS8kp3yxNfnoIw/3wFcPS10LYSFljb1q710/Framer_utils.js\";import{useMarketStore}from\"https://framerusercontent.com/modules/NBp7ctFhtxfP8UPi4nze/1Na5UwTmSmXnVE3ENc2v/Market_store.js\";import{requestProductInventory}from\"https://framerusercontent.com/modules/OIbspRCoz1lUD31SHijS/bzGdRjqA87L10iGhxGb2/Shopify_inventory_batcher.js\";import{getShopifyInventoryQueryKey,SHOPIFY_INVENTORY_STALE_TIME,toLegacyInventoryResponse}from\"https://framerusercontent.com/modules/6LuZie9RwIDGFEc0gNxM/OzDLLzwqWkxvJOJ3SwyK/Shopify_inventory.js\";export const useInventory=productId=>{const country=useMarketStore(state=>state.getMarket()?.countryCode);const config=getShopifyConfig();const context={shop:config?.shop??\"\",apiVersion:config?.apiVersion??\"unspecified\",country};const query=useQuery({queryKey:getShopifyInventoryQueryKey(context,productId),queryFn:()=>requestProductInventory(context,productId),enabled:!isOnFramerCanvasFn()&&Boolean(productId&&config?.shop&&config.storefrontToken),staleTime:SHOPIFY_INVENTORY_STALE_TIME});return{data:query.data?toLegacyInventoryResponse(query.data):undefined,isLoading:query.isLoading,error:query.error};};\nexport const __FramerMetadata__ = {\"exports\":{\"useInventory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Use_inventory.map","export function findInventoryVariant(variants,selectedVariantId){if(!selectedVariantId)return undefined;return variants.find(variant=>variant.node.id.endsWith(`/${selectedVariantId}`))?.node;}export function deriveInventoryState(variant){if(!variant){return{isAvailableForSale:false,isNotTrackedLike:false,inventoryCount:null,isPurchaseDisabled:true,maxPurchasableQuantity:0,inventoryLabelState:\"outOfStock\"};}const quantityAvailable=variant.quantityAvailable;const hasTrackedPositiveInventory=typeof quantityAvailable===\"number\"&&quantityAvailable>0;const isNotTrackedInventory=quantityAvailable===null||quantityAvailable===-1;const isContinueSellingInventory=variant.availableForSale&&typeof quantityAvailable===\"number\"&&quantityAvailable<=0;const isNotTrackedLike=isNotTrackedInventory||isContinueSellingInventory;if(!variant.availableForSale){return{isAvailableForSale:false,isNotTrackedLike:false,inventoryCount:hasTrackedPositiveInventory?quantityAvailable:null,isPurchaseDisabled:true,maxPurchasableQuantity:0,inventoryLabelState:\"outOfStock\"};}if(hasTrackedPositiveInventory){return{isAvailableForSale:true,isNotTrackedLike:false,inventoryCount:quantityAvailable,isPurchaseDisabled:false,maxPurchasableQuantity:quantityAvailable,inventoryLabelState:\"inStock\"};}return{isAvailableForSale:true,isNotTrackedLike,inventoryCount:null,isPurchaseDisabled:false,maxPurchasableQuantity:Infinity,inventoryLabelState:\"notTrackedStock\"};}\nexport const __FramerMetadata__ = {\"exports\":{\"findInventoryVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"deriveInventoryState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InventoryVariantNode\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InventoryVariantEdge\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InventoryLabelState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DerivedInventoryState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Inventory_state.map","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/UbXPw9UzjrdH0JywQuKA/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};if(isLoading||error)return{isDisabled:false};const variants=inventoryData?.data?.product?.variants?.edges;if(!variants)return{isDisabled:false};const selectedVariant=findInventoryVariant(variants,selectedVariantId);if(!selectedVariant)return{isDisabled:false};const inventoryState=deriveInventoryState(selectedVariant);const isDisabled=disableWhenOutOfStock&&inventoryState.isPurchaseDisabled;return{isDisabled};}\nexport const __FramerMetadata__ = {\"exports\":{\"MarketButtonStylingActiveProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MarketButtonStylingActiveControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonDisabledStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonDisabledStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OUT_OF_STOCK_STYLE_DEFAULT_VALUES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInventoryDisabled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"overrideControlDefaults\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetSecondaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OutOfStockStyleProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetPrimaryButtonDisabledStyleDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresetButtonContentControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";export default function LoaderSvg({style}){return /*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",className:\"lucide lucide-loader-circle-icon lucide-loader-circle\",style:{...style},children:/*#__PURE__*/_jsx(\"path\",{d:\"M21 12a9 9 0 1 1-6.219-8.56\"})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoaderSvg\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Loader.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import LoaderSvg from\"https://framerusercontent.com/modules/z7s7d2NhYNciN7G09hdf/Am5BTAlgzE3rws6PH1Qt/Loader.js\";export default function LoadingSpinner({style}){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n          @keyframes loading-spinner {\n            from {\n              transform: rotate(0deg);\n            }\n            to {\n              transform: rotate(360deg);\n            }\n          }\n        `}),/*#__PURE__*/_jsx(LoaderSvg,{style:{animation:\"loading-spinner 1s linear infinite\",...style}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoadingSpinner\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Loading_spinner.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{PresetPrimaryButtonStyleDefaultValues,PresetPrimaryButtonDisabledStyleDefaultValues}from\"https://framerusercontent.com/modules/jSzgfFOp8vV7JiKIMM1a/dm2Ulq3gIc0MD3heuKhx/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{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import React from\"react\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nfunction renderWithSize(children,customButtonSize){return React.Children.map(children,child=>{return /*#__PURE__*/React.cloneElement(child,{style:{...child.props.style,width:customButtonSize?.width===\"fill\"?\"100%\":child.props.width,height:customButtonSize?.height===\"fill\"?\"100%\":child.props.height}});});}export default function CustomButtonWrapper(props){const useDisabledSlot=props.disabled&&props.disabledButton!=null;return /*#__PURE__*/_jsx(\"div\",{onClick:props.disabled?undefined:props.onClick,style:{overflow:\"visible\",width:props.customButtonSize?.width===\"default\"?\"fit-content\":\"100%\",height:props.customButtonSize?.height===\"default\"?\"fit-content\":\"100%\",display:\"flex\",cursor:props.disabled?\"not-allowed\":\"pointer\",opacity:useDisabledSlot?1:props.disabled?.5:1},children:/*#__PURE__*/_jsx(_Fragment,{children:useDisabledSlot?renderWithSize(props.disabledButton,props.customButtonSize):renderWithSize(props.children,props.customButtonSize)})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomButtonWrapper\",\"slots\":[\"disabledButton\",\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Custom_button_wrapper.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";export default function CartSvg({style}){return /*#__PURE__*/_jsxs(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{...style},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"8\",cy:\"21\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"19\",cy:\"21\",r:\"1\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\"})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CartSvg\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cart.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{QueryClientProvider}from\"https://framerusercontent.com/modules/EsOvuK0xi7z7RIQRkokm/8aYKGIHO4l4IQs8Fyj8V/Tanstack_query.js\";import{getQueryClient}from\"https://framerusercontent.com/modules/hfxq8MeR8YqgxUjDt3zM/S1fZkE2x7pHGqkng3vEh/Tanstack_query_client.js\";/**\n * Wrapper component that provides QueryClientProvider to its children\n * This is needed for Framer components that use Tanstack Query, since we can't\n * wrap at the app level in Framer.\n *\n * @example\n * ```tsx\n * export default function MyComponent(props: MyComponentProps) {\n *   return (\n *     <QueryClientWrapper>\n *       <MyComponentContent {...props} />\n *     </QueryClientWrapper>\n *   );\n * }\n *\n * function MyComponentContent(props: MyComponentProps) {\n *   const { data } = useQuery(...);\n *   return <div>{data}</div>;\n * }\n * ```\n */export function QueryClientWrapper(props){const queryClient=getQueryClient();return /*#__PURE__*/_jsx(QueryClientProvider,{client:queryClient,children:props.children});}\nexport const __FramerMetadata__ = {\"exports\":{\"QueryClientWrapper\":{\"type\":\"reactComponent\",\"name\":\"QueryClientWrapper\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","//@ts-ignore\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRouter,useCurrentRouteId}from\"framer\";/**\n * React hook to get and set the current route location in a Framer project.\n * @param {Object} params - The parameters for the hook.\n * @param {boolean} params.strict - If true, the hook will enforce strict location matching.\n * @returns {[string, (string) => void]} - An Array with the current path and a Setter function\n * @example\n * const [location, setLocation] = useCurrentLocation();\n * setLocation('/about')\n * @docs - Refer to https://github.com/VictorienDotNet/Framer-Developer-Gems/blob/main/documentations/useCurrentLocation.md for futher details\n */const useCurrentLocation=params=>{const{navigate,routes}=useRouter();const currentRouteId=useCurrentRouteId();const currentLocation=routes?.[currentRouteId]?.path;const setCurrentLocation=pathWithHash=>{const[path,hash]=pathWithHash.split(\"#\");const routeID=Object.entries(routes)?.find(([,value])=>value?.path===path)?.[0];if(routeID){navigate(routeID,hash);}else if(!params?.strict){window.location.assign(path);}};return[currentLocation,setCurrentLocation];};export{useCurrentLocation};export default function A(){return /*#__PURE__*/_jsx(\"div\",{});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"A\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCurrentLocation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseCurrentLocation.map","/*\n * UseCurrentLocation\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/biKipS1zWpT4tZ0cZhyk/1l8XdClJld0xwptzsD73/UseCurrentLocation.js\"\nexport { default } from \"https://framerusercontent.com/modules/biKipS1zWpT4tZ0cZhyk/1l8XdClJld0xwptzsD73/UseCurrentLocation.js\"\n","import{ControlType}from\"framer\";export const TextDecorationControls={decoration:{type:ControlType.Enum,title:\"Decoration\",options:[\"none\",\"underline\",\"line-through\"],optionTitles:[\"None\",\"Underline\",\"Strikethrough\"],defaultValue:\"none\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"TextDecorationControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TextDecorationControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TextDecoration\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared_text_decoration_props.map","/**\n * Calculates the adjusted price for a variant based on selling plan price adjustments\n * @param basePrice - The base price of the variant\n * @param sellingPlan - The selling plan with price adjustments\n * @returns The adjusted price data, or null if no adjustments apply\n */export function calculateSellingPlanPrice(basePrice,sellingPlan){if(!sellingPlan?.priceAdjustments?.length){return null;}const adjustment=sellingPlan.priceAdjustments[0]?.adjustmentValue;if(!adjustment){return null;}const baseAmount=Number(basePrice.amount);// Case 1: Fixed price override\nif(\"price\"in adjustment){return{amount:adjustment.price.amount,currencyCode:adjustment.price.currencyCode||basePrice.currencyCode};}// Case 2: Percentage adjustment (e.g., -10 means 10% discount)\nif(\"adjustmentPercentage\"in adjustment){const percentage=adjustment.adjustmentPercentage;const adjustedAmount=baseAmount*(1-percentage/100);return{amount:adjustedAmount.toFixed(2),currencyCode:basePrice.currencyCode};}// Case 3: Fixed amount adjustment\nif(\"adjustmentAmount\"in adjustment){const adjustmentAmount=Number(adjustment.adjustmentAmount.amount);const adjustedAmount=baseAmount-adjustmentAmount;return{amount:adjustedAmount.toFixed(2),currencyCode:adjustment.adjustmentAmount.currencyCode||basePrice.currencyCode};}return null;}/**\n * Converts delivery frequency string to shorthand format\n * Examples:\n * - \"monthly\" → \"m\"\n * - \"month\" → \"m\"\n * - \"2 months\" → \"2m\"\n * - \"weekly\" → \"w\"\n * - \"3 weeks\" → \"3w\"\n * - \"daily\" → \"d\"\n * - \"yearly\" → \"y\"\n * - \"1 year\" → \"1y\"\n */export function formatDeliveryFrequencyShorthand(frequency){const normalized=frequency.toLowerCase().trim();// Extract number if present (e.g., \"2 months\" → \"2\")\nconst numberMatch=normalized.match(/^(\\d+)\\s*/);const number=numberMatch?numberMatch[1]:\"\";// Remove number and normalize the remaining text\nconst text=normalized.replace(/^\\d+\\s*/,\"\").trim();// Map time units to shorthand\nconst unitMap={day:\"d\",days:\"d\",daily:\"d\",week:\"w\",weeks:\"w\",weekly:\"w\",month:\"m\",months:\"m\",monthly:\"m\",year:\"y\",years:\"y\",yearly:\"y\"};const shorthand=unitMap[text]||text;// Return formatted: number + shorthand (e.g., \"2m\" or just \"m\")\nreturn number?`${number}${shorthand}`:shorthand;}\nexport const __FramerMetadata__ = {\"exports\":{\"formatDeliveryFrequencyShorthand\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculateSellingPlanPrice\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Subscriptions_utils.map","export const SHARED_IMAGES={defaultProductImage:\"https://framerusercontent.com/images/sFKjyv5OwGE92YZ3xS9WwreFGQ.webp\",defaultProductBundleImage1:\"https://framerusercontent.com/images/snSeXEa7LUq2PApQHiAp0AEK9A.webp\",defaultProductBundleImage2:\"https://framerusercontent.com/images/Bg1fLvrV6AtLNlbTE9c15oMxaE.webp\"};\nexport const __FramerMetadata__ = {\"exports\":{\"SHARED_IMAGES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared_images.map","import{jsx as _jsx}from\"react/jsx-runtime\";export default function PlusSvg({style}){return /*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",fill:\"currentColor\",viewBox:\"0 0 256 256\",style:style,children:/*#__PURE__*/_jsx(\"path\",{d:\"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z\"})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PlusSvg\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Plus.map","import{jsx as _jsx}from\"react/jsx-runtime\";export default function MinusSvg({style}){return /*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",fill:\"currentColor\",viewBox:\"0 0 256 256\",style:style,children:/*#__PURE__*/_jsx(\"path\",{d:\"M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128Z\"})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MinusSvg\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Minus.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useId}from\"react\";import{ControlType,withCSS}from\"framer\";import{SHARED_COLORS,SHARED_STYLES}from\"https://framerusercontent.com/modules/Nrs4jz2AAEOfEZRQEQij/7Ao2SBt1Ssf683HHXgzl/Shared_styles.js\";// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\nconst InputComponent=/*#__PURE__*/forwardRef((props,ref)=>{const generatedId=useId();const{inputStyle:inputStyleProp,placeholder=InputContentControlsDefaultValues.placeholder,type=InputContentControlsDefaultValues.inputType,disabled=InputContentControlsDefaultValues.disabled,onChange,value,id,className,...restProps}=props;// Merge inputStyle with defaults to ensure defaults are always applied\nconst inputStyle={...InputStyleControlsDefaultValues.inputStyle,...inputStyleProp||{}};// Merge font with defaults\nconst font={...InputStyleControlsDefaultValues.inputStyle.font,...inputStyleProp?.font||{}};const handleChange=event=>{if(onChange){onChange(event);}};const combinedStyle={// Default input styles\nfontFamily:\"inherit\",fontSize:\"16px\",lineHeight:\"1.4\",width:\"100%\",height:\"100%\",boxSizing:\"border-box\",textAlign:\"center\",// Apply input style controls\n...mapInputControlsToStyle({inputStyle}),// Override with font prop if provided\n...font};// Add CSS custom property for focus outline color if provided\nif(inputStyle?.focusOutlineColor){combinedStyle[\"--focus-outline-color\"]=inputStyle.focusOutlineColor;}return /*#__PURE__*/_jsx(\"input\",{id:id??generatedId,className:[\"frameship-input\",className].filter(Boolean).join(\" \"),ref:ref,type:type,placeholder:placeholder,disabled:disabled,value:value,onChange:handleChange,style:combinedStyle,...restProps});});// ------------------------------------------------------------ //\n// STYLE MAPPER\n// ------------------------------------------------------------ //\nfunction mapInputControlsToStyle(controls){if(!controls)return{};const style={width:\"100%\",boxSizing:\"border-box\"};if(controls.inputStyle?.padding){style.padding=controls.inputStyle.padding;}// Border can be a shorthand string (e.g., \"1px solid #000\") or an object\nif(typeof controls.inputStyle?.border===\"string\"){style.border=controls.inputStyle.border;}else if(controls.inputStyle?.border){const b=controls.inputStyle.border;// Handle Framer's Border control structure\nif(b.borderWidth!==undefined)style.borderWidth=b.borderWidth;if(b.borderStyle!==undefined)style.borderStyle=b.borderStyle;if(b.borderColor!==undefined)style.borderColor=b.borderColor;// Handle shorthand border property if it exists\nif(b.border!==undefined)style.border=b.border;// Handle individual border widths\nif(b.borderTopWidth!==undefined)style.borderTopWidth=b.borderTopWidth;if(b.borderRightWidth!==undefined)style.borderRightWidth=b.borderRightWidth;if(b.borderBottomWidth!==undefined)style.borderBottomWidth=b.borderBottomWidth;if(b.borderLeftWidth!==undefined)style.borderLeftWidth=b.borderLeftWidth;}if(controls.inputStyle?.borderRadius!==undefined){style.borderRadius=controls.inputStyle.borderRadius;}if(controls.inputStyle?.textColor!==undefined){style.color=controls.inputStyle.textColor;}if(controls.inputStyle?.backgroundColor!==undefined){style.backgroundColor=controls.inputStyle.backgroundColor;}if(controls.inputStyle?.textAlign!==undefined){style.textAlign=controls.inputStyle.textAlign;}return style;}// ------------------------------------------------------------ //\n// DEFAULT VALUES\n// ------------------------------------------------------------ //\nexport const InputStyleControlsDefaultValues={inputStyle:{padding:\"8px 12px 8px 12px\",border:{borderWidth:0,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.2)\"},borderRadius:SHARED_STYLES.borderRadius,textColor:SHARED_COLORS.foreground,backgroundColor:SHARED_COLORS.background,focusOutlineColor:SHARED_COLORS.backgroundMuted,font:{fontFamily:\"inherit\",fontSize:\"16px\",lineHeight:\"1.2\"},textAlign:\"center\"}};export const InputContentControlsDefaultValues={placeholder:\"\",inputType:\"text\",disabled:false};// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\nexport const InputStyleControls={inputStyle:{title:\"Input Style\",buttonTitle:\"Padding, Border, Colors, etc.\",type:ControlType.Object,controls:{padding:{// @ts-expect-error - Padding is not a valid control type in this Framer npm version\ntype:ControlType.Padding,title:\"Padding\",defaultValue:InputStyleControlsDefaultValues.inputStyle.padding},border:{// @ts-expect-error - Border is not a valid control type in this Framer npm version\ntype:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:InputStyleControlsDefaultValues.inputStyle.border.borderWidth,borderStyle:InputStyleControlsDefaultValues.inputStyle.border.borderStyle,borderColor:InputStyleControlsDefaultValues.inputStyle.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:InputStyleControlsDefaultValues.inputStyle.borderRadius},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:InputStyleControlsDefaultValues.inputStyle.textColor},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:InputStyleControlsDefaultValues.inputStyle.backgroundColor},focusOutlineColor:{title:\"Focus Outline Color\",type:ControlType.Color,defaultValue:InputStyleControlsDefaultValues.inputStyle.focusOutlineColor},font:{title:\"Font\",type:ControlType.Font,controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:InputStyleControlsDefaultValues.inputStyle.font},textAlign:{title:\"Text Align\",type:ControlType.Enum,options:[\"left\",\"center\",\"right\"],// optionTitles: [\"Left\", \"Center\", \"Right\"],\noptionIcons:[\"align-left\",\"align-center\",\"align-right\"],defaultValue:InputStyleControlsDefaultValues.inputStyle.textAlign,displaySegmentedControl:true}}}};export const InputContentControls={placeholder:{title:\"Placeholder\",type:ControlType.String,defaultValue:InputContentControlsDefaultValues.placeholder},inputType:{title:\"Input Type\",type:ControlType.Enum,options:[\"text\",\"email\",\"password\",\"number\",\"tel\",\"url\"],optionTitles:[\"Text\",\"Email\",\"Password\",\"Number\",\"Phone\",\"URL\"],defaultValue:InputContentControlsDefaultValues.inputType},disabled:{title:\"Disabled\",type:ControlType.Boolean,defaultValue:InputContentControlsDefaultValues.disabled}};// ------------------------------------------------------------ //\n// CSS STYLES FOR NUMBER INPUT SPINNERS\n// ------------------------------------------------------------ //\nconst InputComponentWithCSS=withCSS(InputComponent,[// Hide number input spinner buttons\n`input[type=\"number\"] {\n      -webkit-appearance: none;\n      -moz-appearance: textfield;\n    }`,`input[type=\"number\"]::-webkit-outer-spin-button,\n     input[type=\"number\"]::-webkit-inner-spin-button {\n      -webkit-appearance: none;\n      margin: 0;\n    }`,// Focus outline style\n`.frameship-input:focus, .frameship-input:focus-visible {\n      outline: 2px solid var(--focus-outline-color, #007bff);\n      outline-offset: 0px;\n    }`],\"\");// ------------------------------------------------------------ //\n// EXPORT\n// ------------------------------------------------------------ //\nexport default InputComponentWithCSS;InputComponent.displayName=\"Input\";\nexport const __FramerMetadata__ = {\"exports\":{\"InputContentControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputContentControlsDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputStyleControlsDefaultValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputStyleControlsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputContentControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputStyleControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"InputComponentWithCSS\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Input.map"],"mappings":"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"}