{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/6m3bYVdQqi1oLEe0M7tX/xDHca9f9woe879pY8GpI/QuantityInput.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,withCSS,RenderTarget}from\"framer\";import{useState,useEffect}from\"react\";import{parseShopifyData,Button,createButtonPropertyControls,Colors}from\"https://framerusercontent.com/modules/gd3dcT3w5rYoRy7ZcKte/ynLwCe8GqEfFnZbs0Ao6/Shared.js\";import{useProductStore,useSelectedVariant}from\"https://framerusercontent.com/modules/ajKYBgRXgNyNgL1GkpqG/TCkwiz1aAAYNzX1Z6PwT/ProductState.js\";import{useCartItem}from\"https://framerusercontent.com/modules/Be5mN5EUhdOwl54qCG8y/Icj1ZU450uFtWcyrdGTm/CartItemContext.js\";import{useCartStore,useAmountInStock}from\"https://framerusercontent.com/modules/ibjYTPLnMMPhPLNCj4uG/S2MuV2jfBPUaq2chuOlb/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\";addPropertyControls(QuantityInput,{shopifyData:{type:ControlType.String,defaultValue:\"\",placeholder:\"Shopify Data\",preventLocalization:true},type:{type:ControlType.Enum,options:[\"subtract\",\"input\",\"add\"],optionTitles:[\"\u2212\",\"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)\"}]})});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuantityInput\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["State", "INPUT_CLASS", "QuantityInputComponent", "props", "shopifyData", "type", "icon", "maxValue", "shopifyId", "parseShopifyData", "isCanvas", "RenderTarget", "cartItemId", "cartVariantId", "cartItemQuantity", "useCartItem", "productStoreQuantity", "setProductStoreQuantity", "useProductStore", "state", "items", "setCartItemQuantity", "useCartStore", "inventory", "inventoryIsLoading", "useAmountInStock", "selectedVariant", "useSelectedVariant", "variantId", "quantity", "maxQuantity", "inputValue", "setInputValue", "ye", "setItemQuantity", "newQuantity", "limitedQuantity", "ue", "element", "radius", "disabled", "p", "Button", "u", "handleInputChange", "event", "handleSetQuantity", "QuantityInput", "withCSS", "QuantityInput_default", "addPropertyControls", "ControlType", "createButtonPropertyControls", "Colors"]
}
