{"version":3,"file":"SystemCore.DUARY4KV.mjs","names":["React","useState"],"sources":["https:/framerusercontent.com/modules/ht9wSyJJK3sK3Oj0FIVm/OVXvStCxBmVdoO6KoEQO/SystemCore.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useState}from\"react\";import React from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";export const useSystemStore=createStore({systemReady:false,user:\"UNSET\"});let systemCorePromise=null;function isAnonymousUser(user){if(!user||user===\"UNSET\")return false;return user?.isAnonymous===true;}/** Real (non-guest) account — anonymous Firebase sessions count as logged out in the UI. */function hasAccount(user){return!!(user&&user!==\"UNSET\"&&!isAnonymousUser(user));}export function initializeSystemCore(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[,setStore]=useSystemStore();useEffect(()=>{const sys=window?.systemCore;if(sys){sys.isAnonymousUser=user=>{const resolvedUser=user??sys?.getCurrentUser?.()??null;return isAnonymousUser(resolvedUser);};}// 1) Hard reset to a known baseline on mount\nsetStore(prev=>({...prev,user:null,systemReady:false,responseReceived:false}));// 2) Set initial user (even if null)\nconst current=sys?.getCurrentUser?.()??null;setStore(prev=>({...prev,user:current,// If you consider this a \"response\", set to !!current\n    responseReceived:!!current,systemReady:!!sys}));// 3) Subscribe to changes\nconst unsub=sys?.onAuthStateChanged?.(user=>{setStore(prev=>({...prev,user,responseReceived:true}));});return()=>{unsub?.();};},[setStore]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}export function withLoginButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();const variant=hasAccount(store.user)?\"LoggedIn\":\"NotLoggedIn\";//const content = store.user ? store.user.email : \"Log in\"\n//const content = store.user ? \"Account\" : \"Log in\"\nvar newProps={...props,variant};const handleClick=e=>{if(!hasAccount(store.user)){e?.preventDefault?.();e?.stopPropagation?.();e?.nativeEvent?.stopImmediatePropagation?.();window.dispatchEvent(new CustomEvent(\"show:authwindow\"));}};return /*#__PURE__*/_jsx(Component,{ref:ref,...newProps,onClick:handleClick});});}export function withUserEmail(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();return /*#__PURE__*/_jsx(Component,{ref:ref,...props,text:hasAccount(store.user)?store.user.email||\"\":\"\"});});}export function withLogoutButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store,setStore]=useSystemStore();const logOut=async()=>{try{const result=await window?.systemCore?.logout?.();if(result?.success){// Guest mode may immediately create an anonymous session;\n// treat that as logged out in the Framer store until auth settles.\nsetStore(prev=>({...prev,user:null}));}else{console.error(\"Logout failed:\",result?.error||\"Unknown error\");}}catch(err){console.error(\"Logout failed:\",err);}};const handleClick=async e=>{e?.preventDefault?.();e?.stopPropagation?.();e?.nativeEvent?.stopImmediatePropagation?.();if(!hasAccount(store.user))return;await logOut();};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});});}export function withLoginStatus(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();const newProps={...props};if(store.user===\"UNSET\"){newProps.variant=\"Unset\";}else if(hasAccount(store.user)){if(window?.systemCore?.isEmailVerified?.()){newProps.variant=\"LoggedIn\";}else{newProps.variant=\"LoggedInNoEmail\";}}else{newProps.variant=\"NotLoggedIn\";}return /*#__PURE__*/_jsx(Component,{ref:ref,...newProps});});}export function withShowIfLoggedIn(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();if(!hasAccount(store.user)){return null;}return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}export function withShowIfNotLoggedIn(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();if(hasAccount(store.user)){return null;}return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}export function withResendEmailButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();const[variant,setVariant]=React.useState(\"Default\");const handleClick=async e=>{try{setVariant(\"Loading\");await window?.systemCore?.resendVerificationEmail?.();console.log(\"Verification email resent.\");}catch(err){console.error(\"Failed to resend verification email:\",err);}finally{setVariant(\"Success\");}};const newProps={...props,onClick:handleClick,variant,disabled:variant!==\"Default\"||props.disabled};return /*#__PURE__*/_jsx(Component,{ref:ref,...newProps});});}export function withResetPasswordButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useSystemStore();// the variant we pass to the component\nconst[variant,setVariant]=useState(\"Default\");const isEligible=hasAccount(store?.user)&&window?.systemCore?.isEmailVerified?.();// Update eligibility variant whenever auth state changes\nuseEffect(()=>{if(!isEligible)setVariant(\"Disabled\");else setVariant(\"Default\");},[isEligible]);const handleClick=async()=>{if(!isEligible)return;try{setVariant(\"Loading\");const email=store.user.email;const result=await window.systemCore.resetPassword(email);if(result?.success){setVariant(\"Success\");}else{console.error(\"Reset password failed:\",result?.error);setVariant(\"Error\");}}catch(err){console.error(\"Reset password exception:\",err);setVariant(\"Error\");}};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick,variant:variant,disabled:variant===\"Disabled\"||variant===\"Loading\"});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withShowIfNotLoggedIn\":{\"type\":\"reactHoc\",\"name\":\"withShowIfNotLoggedIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLoginStatus\":{\"type\":\"reactHoc\",\"name\":\"withLoginStatus\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResendEmailButton\":{\"type\":\"reactHoc\",\"name\":\"withResendEmailButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withShowIfLoggedIn\":{\"type\":\"reactHoc\",\"name\":\"withShowIfLoggedIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResetPasswordButton\":{\"type\":\"reactHoc\",\"name\":\"withResetPasswordButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSystemStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLogoutButton\":{\"type\":\"reactHoc\",\"name\":\"withLogoutButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withUserEmail\":{\"type\":\"reactHoc\",\"name\":\"withUserEmail\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"initializeSystemCore\":{\"type\":\"reactHoc\",\"name\":\"initializeSystemCore\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLoginButton\":{\"type\":\"reactHoc\",\"name\":\"withLoginButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SystemCore.map"],"mappings":"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"}