{"version":3,"file":"QuantityInput.mIlO2Xjr.mjs","names":["useContext","useState"],"sources":["https:/framerusercontent.com/modules/Be5mN5EUhdOwl54qCG8y/Icj1ZU450uFtWcyrdGTm/CartItemContext.js","https:/framerusercontent.com/modules/6m3bYVdQqi1oLEe0M7tX/4u0dTWsY1paTcseW4igp/QuantityInput.js"],"sourcesContent":["import{createContext,useContext}from\"react\";export const CartItemContext=/*#__PURE__*/createContext({inCart:false,cartItemId:null,shopifyId:null,variantId:null,quantity:1,price:null,compareAtPrice:null,sku:null,barcode:null,variant:null});export const useCartItem=()=>useContext(CartItemContext);\nexport const __FramerMetadata__ = {\"exports\":{\"useCartItem\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CartItemContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CartItemContext.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType,withCSS,RenderTarget}from\"framer\";import{useState,useEffect}from\"react\";import{parseShopifyData,addPropertyControlsFrameship}from\"https://framerusercontent.com/modules/gd3dcT3w5rYoRy7ZcKte/sH6FZizM8jJ11j2dQOhQ/Shared.js\";import{Button,createButtonPropertyControls,Colors}from\"https://framerusercontent.com/modules/fVHxdMMgjEun6wSmFoH5/UO9Fwa3zz4T8isOKvUfB/SharedStyles.js\";import{useProductStore,useSelectedVariant}from\"https://framerusercontent.com/modules/ajKYBgRXgNyNgL1GkpqG/prknJU66nI5iRE43ff6z/ProductState.js\";import{useCartItem}from\"https://framerusercontent.com/modules/Be5mN5EUhdOwl54qCG8y/Icj1ZU450uFtWcyrdGTm/CartItemContext.js\";import{useCartStore,useAmountInStock}from\"https://framerusercontent.com/modules/ibjYTPLnMMPhPLNCj4uG/FkITfeSZPOAgcIAyLyDi/Cart.js\";var State;(function(State){State[\"Default\"]=\"default\";State[\"Disabled\"]=\"disabled\";})(State||(State={}));const INPUT_CLASS=\"frameship-quantity-input\";function QuantityInputComponent(props){const{shopifyData,type,icon,maxValue}=props;const{shopifyId}=parseShopifyData(shopifyData);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const{cartItemId,variantId:cartVariantId,quantity:cartItemQuantity}=useCartItem();const[productStoreQuantity,setProductStoreQuantity]=useProductStore(state=>[state.products[shopifyId]?.quantity,state.setQuantity]);const[items,setCartItemQuantity]=useCartStore(state=>[state.items,state.setCartItemQuantity]);const[inventory,inventoryIsLoading]=useAmountInStock(shopifyData);const selectedVariant=useSelectedVariant(props.shopifyData);const variantId=cartItemId?cartVariantId:selectedVariant?.id;const quantity=(cartItemId?cartItemQuantity:productStoreQuantity)||1;const maxQuantity=Math.min(inventory[variantId]||Infinity,maxValue);const[inputValue,setInputValue]=useState(quantity.toString());const setItemQuantity=newQuantity=>{const limitedQuantity=Math.min(newQuantity,maxQuantity,maxValue);if(cartItemId){setCartItemQuantity(cartItemId,limitedQuantity);}else{setProductStoreQuantity(shopifyId,limitedQuantity);}};useEffect(()=>{if(!cartItemId&&quantity>maxQuantity){setProductStoreQuantity(shopifyId,maxQuantity);}},[maxQuantity,cartItemId,quantity,shopifyId,setProductStoreQuantity]);useEffect(()=>{setInputValue(quantity.toString());},[quantity]);let element=null;switch(type){case\"add\":case\"subtract\":const radius=icon.rounded?icon.strokeWidth/2:0;const disabled=type===\"add\"&&quantity>=maxQuantity||type===\"subtract\"&&quantity<=1;element=/*#__PURE__*/_jsx(Button,{...props,variant:disabled&&!isCanvas?\"disabled\":\"default\",onClick:()=>setItemQuantity(quantity+(type===\"add\"?1:-1)),disabled:disabled,style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:disabled?undefined:\"pointer\",...props.style},children:/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:icon.size,height:icon.size,viewBox:\"0 0 16 16\",children:[/*#__PURE__*/_jsx(\"path\",{d:`M ${radius} 8 L ${16-radius} 8`,fill:\"transparent\",strokeWidth:icon.strokeWidth,stroke:\"currentColor\",strokeLinecap:icon.rounded?\"round\":\"square\"}),type==\"add\"&&/*#__PURE__*/_jsx(\"path\",{d:`M 8 ${radius} L 8 ${16-radius}`,fill:\"transparent\",strokeWidth:icon.strokeWidth,stroke:\"currentColor\",strokeLinecap:icon.rounded?\"round\":\"square\"})]})});break;case\"input\":const handleInputChange=event=>{setInputValue(event.target.value);};const handleSetQuantity=()=>{const newQuantity=parseInt(inputValue,10);if(!isNaN(newQuantity)&&newQuantity>0){setItemQuantity(newQuantity);}else{setInputValue(quantity.toString());}};element=/*#__PURE__*/_jsx(Button,{...props,className:INPUT_CLASS,tag:\"input\",type:\"number\",value:inputValue,onChange:handleInputChange,onBlur:handleSetQuantity,onKeyDown:event=>{if(event.key===\"Enter\"){handleSetQuantity();}},max:maxQuantity,style:{appearance:\"textfield\",...props.style}});break;}return element;}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */const QuantityInput=withCSS(QuantityInputComponent,[`input.${INPUT_CLASS}[type=number]::-webkit-outer-spin-button,\n\tinput.${INPUT_CLASS}[type=number]::-webkit-inner-spin-button {\n\t\tdisplay: none;\n\t}`,`input.${INPUT_CLASS}[type=number]::-moz-inner-spin-button,\n\tinput.${INPUT_CLASS}[type=number]::-moz-outer-spin-button {\n\t\t-moz-appearance: none;\n\t\tmargin: 0;\n\t}`]);export default QuantityInput;QuantityInput.displayName=\"Quantity Input\";addPropertyControlsFrameship(QuantityInput,{type:{type:ControlType.Enum,options:[\"subtract\",\"input\",\"add\"],optionTitles:[\"−\",\"Input\",\"+\"],displaySegmentedControl:true},maxValue:{type:ControlType.Number,defaultValue:100,min:1,step:1,description:\"The value will always be limited to the amount in stock\"},icon:{type:ControlType.Object,hidden:props=>props.type!==\"add\"&&props.type!==\"subtract\",controls:{size:{type:ControlType.Number,defaultValue:12,min:0,step:1},strokeWidth:{type:ControlType.Number,defaultValue:3,min:0,max:10,step:1,title:\"Stroke\"},rounded:{type:ControlType.Boolean,defaultValue:true}}},...createButtonPropertyControls({placeholder:true,hidden:{font:props=>props.type!==\"input\",placeholder:props=>props.type!==\"input\"},variants:[{id:\"default\",title:\"Default\",...Colors.Primary},{id:\"disabled\",title:\"Disabled\",color:\"rgba(0, 0, 0, 0.25)\"}]})},{shopifyData:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuantityInput\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"\",\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}