{"version":3,"file":"UseCartStore.JD2nmA8X.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/2IIb9NsOS1bSo1wtWLTv/ABFBkpiIaTqpzb95kzEu/UseCartStore.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";const STORAGE_KEY=\"framerbitz_cart\";// All cart components share ONE store via this global. When the components are\n// distributed as separate shared-URL modules, Framer may bundle a copy of this\n// file into each one — keying off window guarantees the icon, drawer and\n// add-to-cart trigger all read and write the same cart, not isolated copies.\nconst GLOBAL_KEY=\"__framerbitz_cart_store__\";function loadInitialState(){try{const raw=window.localStorage.getItem(STORAGE_KEY);if(raw){const parsed=JSON.parse(raw);return{items:parsed.items||[],open:false};}}catch{// ignore corrupt or inaccessible storage\n}return{items:[],open:false};}function createStore(){const store={state:loadInitialState(),listeners:[],setState(newState){store.state={...store.state,...newState};store.listeners.forEach(l=>l(store.state));try{// Persist the items only — `open` is session UI state, not saved.\nwindow.localStorage.setItem(STORAGE_KEY,JSON.stringify({items:store.state.items}));}catch{// ignore storage write errors (quota, privacy mode, etc.)\n}}};return store;}let fallbackStore;function getStore(){if(typeof window===\"undefined\"){if(!fallbackStore)fallbackStore=createStore();return fallbackStore;}if(!window[GLOBAL_KEY])window[GLOBAL_KEY]=createStore();return window[GLOBAL_KEY];}export function getCart(){return getStore().state;}export function openCart(){getStore().setState({open:true});}export function closeCart(){getStore().setState({open:false});}export function addItem(product){const store=getStore();const existing=store.state.items.find(i=>i.id===product.id);if(existing){store.setState({items:store.state.items.map(i=>i.id===product.id?{...i,quantity:i.quantity+1}:i)});}else{store.setState({items:[...store.state.items,{...product,quantity:1}]});}}export function removeItem(id){const store=getStore();store.setState({items:store.state.items.filter(i=>i.id!==id)});}export function updateQuantity(id,quantity){if(quantity<1)return removeItem(id);const store=getStore();store.setState({items:store.state.items.map(i=>i.id===id?{...i,quantity}:i)});}export function clearCart(){getStore().setState({items:[]});}export function useCartStore(){const store=getStore();const[cart,setCart]=useState(store.state);useEffect(()=>{// Re-sync in case the store changed between first render and this effect.\nsetCart(store.state);store.listeners.push(setCart);return()=>{store.listeners=store.listeners.filter(l=>l!==setCart);};},[store]);return cart;}export default function useCartStoreComponent(){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"openCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCartStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"removeItem\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateQuantity\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"addItem\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"useCartStoreComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseCartStore.map"],"mappings":"gIAI6C,SAAS,GAAkB,CAAC,GAAG,CAAC,IAAM,EAAI,EAAO,aAAa,QAAQ,CAAW,EAAE,GAAG,EAAkC,MAAM,CAAC,MAAvB,KAAK,MAAM,CAAuB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAK,CAAG,MAAM,CACtN,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAK,CAAE,CAAC,SAAS,GAAa,CAAC,IAAM,EAAM,CAAC,MAAM,EAAiB,EAAE,UAAU,CAAC,EAAE,SAAS,EAAS,CAAC,EAAM,MAAM,CAAC,GAAG,EAAM,MAAM,GAAG,CAAQ,EAAE,EAAM,UAAU,QAAQ,GAAG,EAAE,EAAM,KAAK,CAAC,EAAE,GAAG,CAClN,EAAO,aAAa,QAAQ,EAAY,KAAK,UAAU,CAAC,MAAM,EAAM,MAAM,KAAK,CAAC,CAAC,CAAE,MAAM,CACzF,CAAC,CAAC,EAAE,OAAO,CAAM,CAAmB,SAAS,GAAU,CAA6J,OAAlJ,IAAS,QAAa,AAAkB,IAAc,EAAY,EAAS,IAAmB,EAAO,KAAY,EAAO,GAAY,EAAY,GAAS,EAAO,GAAY,CAAoD,SAAgB,GAAU,CAAC,EAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAI,CAAC,CAAE,CAAC,SAAgB,GAAW,CAAC,EAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAK,CAAC,CAAE,CAAC,SAAgB,EAAQ,EAAQ,CAAC,IAAM,EAAM,EAAS,EAAiB,EAAM,MAAM,MAAM,KAAK,GAAG,EAAE,KAAK,EAAQ,EAAc,EAAG,EAAM,SAAS,CAAC,MAAM,EAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAQ,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAQ,EAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,MAAM,CAAC,GAAG,EAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAG,CAAC,SAAgB,EAAW,EAAG,CAAC,IAAM,EAAM,EAAS,EAAE,EAAM,SAAS,CAAC,MAAM,EAAM,MAAM,MAAM,OAAO,GAAG,EAAE,KAAK,CAAE,CAAC,CAAC,CAAE,CAAC,SAAgB,EAAe,EAAG,EAAS,CAAC,GAAG,EAAS,EAAE,OAAO,EAAW,CAAE,EAAE,IAAM,EAAM,EAAS,EAAE,EAAM,SAAS,CAAC,MAAM,EAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAG,CAAC,GAAG,EAAE,UAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,SAAgB,GAAW,CAAC,EAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,SAAgB,GAAc,CAAC,IAAM,EAAM,EAAS,EAAO,CAAC,EAAK,GAASA,EAAS,EAAM,KAAK,EACthC,OADwhC,OAC1pC,EAAQ,EAAM,KAAK,EAAE,EAAM,UAAU,KAAK,CAAO,MAAY,CAAC,EAAM,UAAU,EAAM,UAAU,OAAO,GAAG,IAAI,CAAO,CAAE,GAAI,CAAC,CAAK,CAAC,EAAS,CAAK,2BARpG,IAAsC,EAAO,EAAY,kBAI7F,EAAW"}