{"version":3,"file":"ConditionalForm.BwU3UBrx.mjs","names":["useStore","useState"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js","https:/framerusercontent.com/modules/NEosa3ixSB913gZIfExd/Be5gqMcDh35oTmHBlK4F/ConditionalForm.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","import{jsx as _jsx}from\"react/jsx-runtime\";import{createStore}from\"https://framer.com/m/framer/store.js\";// 1. Wspólny magazyn danych monitorujący stan pól input\nconst useStore=createStore({emailValue:\"\",phoneValue:\"\"});// 2. Override dla pola: Twój adres e-mail\nexport function onEmailChange(Component){return props=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{...props,onChange:e=>{setStore({emailValue:e.target.value});}});};}// 3. Override dla pola: Twój numer telefonu\nexport function onPhoneChange(Component){return props=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{...props,onChange:e=>{setStore({phoneValue:e.target.value});}});};}// 4. Override dla Checkboxa: wiadomości e-mail\nexport function withEmailConsent(Component){return props=>{const[store]=useStore();// Zgoda na maila pojawia się, gdy wpisano znak '@'\nconst hasEmail=store.emailValue.includes(\"@\");if(!hasEmail)return null;return /*#__PURE__*/_jsx(Component,{...props});};}// 5. Override dla Checkboxa: wiadomości SMS/MMS\nexport function withSMSConsent(Component){return props=>{const[store]=useStore();// Zgoda na SMS pojawia się, gdy wpisano min. 5 znaków w polu telefonu\nconst hasPhone=store.phoneValue.trim().length>=5;if(!hasPhone)return null;return /*#__PURE__*/_jsx(Component,{...props});};}// 6. Override dla Checkboxa: połączeń telefonicznych\nexport function withCallConsent(Component){return props=>{const[store]=useStore();// Działa na tej samej zasadzie co SMS – reaguje na numer telefonu\nconst hasPhone=store.phoneValue.trim().length>=5;if(!hasPhone)return null;return /*#__PURE__*/_jsx(Component,{...props});};}// BONUS: 7. Override dla nagłówka zgód \"Zachęcamy do wyrażenia...\" oraz formułki RODO pod spodem\n// Ukrywa cały blok tekstowy, dopóki użytkownik nie zacznie wpisywać ALBO maila, ALBO telefonu.\nexport function withConsentHeader(Component){return props=>{const[store]=useStore();const showSection=store.emailValue.includes(\"@\")||store.phoneValue.trim().length>=5;if(!showSection)return null;return /*#__PURE__*/_jsx(Component,{...props});};}\nexport const __FramerMetadata__ = {\"exports\":{\"onEmailChange\":{\"type\":\"reactHoc\",\"name\":\"onEmailChange\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEmailConsent\":{\"type\":\"reactHoc\",\"name\":\"withEmailConsent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSMSConsent\":{\"type\":\"reactHoc\",\"name\":\"withSMSConsent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCallConsent\":{\"type\":\"reactHoc\",\"name\":\"withCallConsent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"onPhoneChange\":{\"type\":\"reactHoc\",\"name\":\"onPhoneChange\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withConsentHeader\":{\"type\":\"reactHoc\",\"name\":\"withConsentHeader\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ConditionalForm.map"],"mappings":"6KAA8E,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,SAASA,GAAU,CACnB,GAAK,CAAC,EAAM,GAAUC,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,OAAOD,mBAfC,IAAwC,qBEE9E,SAAgB,EAAc,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,EAAM,GAAU,GAAU,CAAC,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,SAAS,GAAG,CAAC,EAAS,CAAC,WAAW,EAAE,OAAO,MAAM,CAAC,EAAG,CAAC,EAC5L,SAAgB,EAAc,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,EAAM,GAAU,GAAU,CAAC,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,SAAS,GAAG,CAAC,EAAS,CAAC,WAAW,EAAE,OAAO,MAAM,CAAC,EAAG,CAAC,EAC5L,SAAgB,EAAiB,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,GAAO,GAAU,CACX,OAAxD,EAAM,WAAW,SAAS,IAAI,CAA8C,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAnD,MAClE,SAAgB,EAAe,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,GAAO,GAAU,CACN,OAA3D,EAAM,WAAW,MAAM,CAAC,QAAQ,EAA+C,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAnD,MACrE,SAAgB,EAAgB,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,GAAO,GAAU,CACP,OAA3D,EAAM,WAAW,MAAM,CAAC,QAAQ,EAA+C,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAnD,MAErE,SAAgB,EAAkB,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,GAAO,GAAU,CAAiH,OAA9F,EAAM,WAAW,SAAS,IAAI,EAAE,EAAM,WAAW,MAAM,CAAC,QAAQ,EAAkD,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAnD,yBAXpJ,IAA8D,CACnG,EAAS,EAAY,CAAC,WAAW,GAAG,WAAW,GAAG,CAAC"}