{"version":3,"file":"shared-lib.CBZsrPCR.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/3beg2HdfNTIkGbWPYMtW/eaARcsfG1QdtAwN5guRr/siteMetadata.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","// Generated by Framer (b47b624)\nconst valuesByLocaleId={HZ3mMuGaE:{v0:\"SugarAI (antes SugarCRM) | Precision selling platform\",v1:\"SugarAI (antes SugarCRM) ayuda a los vendedores a vender al detectar problemas y oportunidades ocultos en los datos de CRM y ERP, y presentarlos como pr\\xf3ximos pasos accionables.\"},IOPUqxBVt:{v0:\"SugarAI (anciennement SugarCRM) | Plateforme de vente de pr\\xe9cision\",v1:\"SugarAI (anciennement SugarCRM) aide les commerciaux \\xe0 vendre en rep\\xe9rant les probl\\xe8mes et les opportunit\\xe9s cach\\xe9s dans les donn\\xe9es CRM et ERP, puis en les pr\\xe9sentant comme des prochaines \\xe9tapes concr\\xe8tes \\xe0 mettre en œuvre.\"},Q3Jo8ln93:{v0:\"SugarAI (in precedenza SugarCRM) | Piattaforma di vendita di precisione\",v1:\"SugarAI (precedentemente SugarCRM) aiuta i venditori a vendere individuando problemi e opportunit\\xe0 nascosti nei dati CRM ed ERP, presentandoli poi come prossime azioni concrete.\"},SN6h4jUjg:{v0:\"SugarAI (ehemals SugarCRM) | Pr\\xe4zisionsverkaufsplattform\",v1:\"SugarAI (fr\\xfcher SugarCRM) hilft Verk\\xe4ufern, besser zu verkaufen, indem es Probleme und Chancen in CRM- und ERP-Daten erkennt und sie dann als umsetzbare n\\xe4chste Schritte pr\\xe4sentiert.\"},yXj1RjOWu:{v0:\"SugarAI（旧SugarCRM）| 精密営業プラットフォーム\",v1:\"SugarAI（旧SugarCRM）は、CRMやERPデータに潜む課題や商機を見つけ出し、それを実行可能な次のアクションとして提示することで、営業担当者の販売活動を支援します。\"}};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{description:getLocalizedValue(\"v1\",activeLocale)??\"SugarAI (formerly SugarCRM) helps sellers sell by spotting issues and opportunities hiding in CRM and ERP data, then presenting them as actionable next steps.\",favicon:\"https://framerusercontent.com/assets/zWwtyo9a2fr7sfl6bssLxHj1M.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/cNwrycXnUPSNUq2684viPyhMzk8.png\",title:getLocalizedValue(\"v0\",activeLocale)??\"SugarAI (formerly SugarCRM) | Precision selling platform\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"qKAA8E,SAAgB,EAAY,EAAO,CACjH,IAAM,EAAU,EAAK,CAAC,MAAM,OAAO,OAAO,CAAC,GAAG,EAAO,CAAC,CAAC,CAAC,CAClD,EAAa,GAAU,CAC1B,OAAO,GAAW,aAAY,EAAS,EAAS,EAAU,MAAM,EAAE,EAAU,MAAM,OAAO,OAAO,CAAC,GAAG,EAAU,MAAM,GAAG,EAAS,CAAC,EAChI,EAAW,OAAO,GAAS,SAAS,OAAO,OAAO,CAAC,GAAG,EAAO,CAAC,CAAC,EAC7D,EAAa,IAAI,IACjB,EAAc,GAAU,CAC3B,OAAO,GAAW,aAAY,EAAS,EAAS,EAAW,EAAE,EAAW,OAAO,GAAW,SAAS,OAAO,OAAO,CAAC,GAAG,EAAW,GAAG,EAAS,CAAC,CAAC,EACjJ,EAAa,QAAQ,GAAQ,EAAO,EAAW,CAAC,EAChD,SAAS,GAAU,CACnB,GAAK,CAAC,EAAM,GAAUA,EAAS,EAAW,CAK1C,OAHA,OACA,EAAa,IAAI,EAAS,KAAW,EAAa,OAAO,EAAS,EAAG,EAAE,CAAC,CACrE,GAAgB,GAAG,IAAM,GAAgB,CAAO,CAAC,EAAU,MAAM,EAAa,EAC3E,CAAC,EAAM,EAAc,CAAG,OAAO,mBAfC,IAAwC,qBEC8tC,SAAS,EAAkB,EAAI,EAAO,CAAC,KAAM,GAAO,CAAC,IAAM,EAAO,EAAiB,EAAO,IAAI,GAAG,EAAO,CAAC,IAAM,EAAM,EAAO,GAAK,GAAG,EAAM,OAAO,EAAO,EAAO,EAAO,UAAW,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,EAAkB,KAAK,EAAa,EAAE,iKAAiK,QAAQ,qEAAqE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,EAAkB,KAAK,EAAa,EAAE,2DAA2D,iBAA/gE,EAAiB,CAAC,UAAU,CAAC,GAAG,wDAAwD,GAAG,oLAAuL,CAAC,UAAU,CAAC,GAAG,qEAAwE,GAAG,kOAAgQ,CAAC,UAAU,CAAC,GAAG,0EAA0E,GAAG,oLAAuL,CAAC,UAAU,CAAC,GAAG,2DAA8D,GAAG,yLAAqM,CAAC,UAAU,CAAC,GAAG,mCAAmC,GAAG,2FAA2F,CAAC"}