{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/pMP2anKUHudrYUE4TaAp/bBPSs3BgJvhUGhA1fSP0/SignInForm.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useMemo,useState}from\"react\";// @ts-ignore\nimport{addPropertyControls,ControlType,withCSS,inferInitialRouteFromPath,useRouter}from\"framer\";// @ts-ignore\nimport{auth}from\"https://cdn.framerauth.com/packages/sdk/live/latest/framerauth.esm.js\";import BaseForm,{basePropertyControls}from\"https://framerusercontent.com/modules/ExV5oOjPmSTY0gHEjmby/NpqywsqBSPokrP5l2Kmw/BaseForm.js\";//////////////////////////////////\n/////// FORM CONFIGURATION ///////\n//////////////////////////////////\n// Define inputs\nconst baseInputs=[{label:\"Email\",name:\"email\",type:\"email\",required:true,extra:false,placeholder:\"Email\"},{label:\"Password\",name:\"password\",type:\"password\",required:true,extra:false,placeholder:\"Password\"}];const formId=\"sign_in\"// Unique form ID for this form.\n;const defaultButtonLabel=\"Sign In\"// Default submit button label on this form.\n;const exposePasswordVisibilityToggle=true// Expose password visibility toggle property for password inputs.\n;const buttonLabelKey=`${formId}_button_label`// Key for button label property control.\n;/**\n * Sign In Form\n * By Joel Whitaker\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 40\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */const SignInForm=withCSS(function SignInForm({...baseProps}){const[inputs,setInputs]=useState(baseInputs)// We can override inputs with property controls.\n;const[redirectLink,setRedirectLink]=useState(baseProps.link);const[initializing,setInitializing]=useState(true);const buttonProps=useMemo(()=>{// Map button label to button\n// This is to avoid style copy-pasting of the button label.\nreturn{...baseProps.button,label:baseProps.button[buttonLabelKey]};},[baseProps.button,baseProps.button[buttonLabelKey]]);useEffect(()=>{// Map input labels to inputs\nif(baseProps.inputFields){const newInputs=[];baseInputs.forEach((input,_idx)=>{const inputControlName=snakeToCamel(input.name);if(!(inputControlName in baseProps.inputFields)){// If the input is not in the inputFields object, skip it.\nconsole.log(`Input ${inputControlName} not found in inputFields object.`);return;}const inputField=baseProps.inputFields[inputControlName];const display=inputField.display;const label=inputField.label;const placeholder=label;if(display===true||display===undefined){newInputs.push({...input,label,placeholder});}});setInputs(newInputs);}},[baseProps.inputFields]);const router=useRouter();useEffect(()=>{const checkAuthStatus=async()=>{setInitializing(true);try{if(isBrowser()){var _site_links;const{data:{site}}=await auth.getSite({cache:true});const accountPage=(site===null||site===void 0?void 0:(_site_links=site.links)===null||_site_links===void 0?void 0:_site_links.account)||\"/account\";const licenseKey=getParamValue(\"license_key\");const{data:_,error}=await auth.getUser();if(!error){if(licenseKey){navigateTo(`${accountPage}#license_key=${licenseKey}`);}else{if(redirectLink){navigateTo(redirectLink);}// setLoading(false)\n}}else{if(licenseKey){setRedirectLink(`${accountPage}#license_key=${licenseKey}`);}// setLoading(false)\n}}}finally{setInitializing(false);}};checkAuthStatus();},[]);const navigateTo=link=>{const[path,hash]=link.split(\"#\");const{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,path);if(routeId){router.navigate(routeId,hash,pathVariables);}};const onSubmit=async formData=>{// Prevent submitting while submitting\nconst{data:_,error}=await auth.signInWithPassword({email:formData.email,password:formData.password});if(error){return{ok:false,message:error.message};}// const event = new Event('framerAuthRefetchUser');\n// window.dispatchEvent(event);\nreturn{ok:true,message:\"Successfully Signed in.\"};};return /*#__PURE__*/_jsx(BaseForm,{...baseProps,isInitializing:initializing,link:redirectLink,button:buttonProps,inputs:inputs,onSubmit:onSubmit});},[]);const isBrowser=()=>{return typeof window!==\"undefined\";};const getParamValue=paramName=>{if(!isBrowser()){return null;}const urlParams=new URLSearchParams(window.location.search);if(urlParams.has(paramName)){return urlParams.get(paramName);}const hashParams=new URLSearchParams(window.location.hash.substring(1))// Remove the '#' part\n;if(hashParams.has(paramName)){return hashParams.get(paramName);}return null;};const snakeToCamel=str=>{return str.split(\"_\").map((word,index)=>{if(index===0){return word;}return word.charAt(0).toUpperCase()+word.slice(1);}).join(\"\");};// Here we can override property controls if we don't want to expose them to the user.\n// We generate the inputs property controls dynamically based on the inputs array.\nconst inputsPropertyControls={};baseInputs.forEach((input,_idx)=>{const inputControlName=snakeToCamel(input.name);inputsPropertyControls[inputControlName]={title:`${input.label}`,type:ControlType.Object,controls:{display:input.extra===true?{title:\"Display\",type:ControlType.Boolean,defaultValue:true}:undefined,label:{title:\"Label\",type:ControlType.String,defaultValue:input.label}}};});const exportBasePropertyControls={...basePropertyControls,link:{title:\"Redirect\",type:ControlType.Link},inputFields:{title:\"Inputs\",type:ControlType.Object,controls:inputsPropertyControls},input:{...basePropertyControls.input,controls:{...basePropertyControls.input.controls,icon:exposePasswordVisibilityToggle?{type:ControlType.Object,title:\"Icon\",controls:{showPasswordVisibilityIcon:{title:\"Activated\",type:ControlType.Boolean,defaultValue:true},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#000\",hidden:props=>!props.showPasswordVisibilityIcon}}}:undefined}},button:{// Inject default button label\n...basePropertyControls.button,controls:{...basePropertyControls.button.controls,label:undefined,[buttonLabelKey]:{...basePropertyControls.button.controls.label,defaultValue:defaultButtonLabel}}}};// @ts-ignore - TS doesn't like our basePropertyControls type.\naddPropertyControls(SignInForm,exportBasePropertyControls);SignInForm.defaultProps={...BaseForm.defaultProps,...SignInForm.defaultProps};export default SignInForm;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SignInForm\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"300\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SignInForm.map"],
  "mappings": "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",
  "names": ["baseInputs", "formId", "defaultButtonLabel", "exposePasswordVisibilityToggle", "buttonLabelKey", "SignInForm", "withCSS", "baseProps", "inputs", "setInputs", "ye", "redirectLink", "setRedirectLink", "initializing", "setInitializing", "buttonProps", "se", "ue", "newInputs", "input", "_idx", "inputControlName", "snakeToCamel", "inputField", "display", "label", "placeholder", "router", "useRouter", "isBrowser", "_site_links", "site", "N", "accountPage", "licenseKey", "getParamValue", "_", "error", "navigateTo", "link", "path", "hash", "routeId", "pathVariables", "inferInitialRouteFromPath", "p", "BaseForm_default", "formData", "window", "paramName", "urlParams", "hashParams", "str", "word", "index", "inputsPropertyControls", "ControlType", "exportBasePropertyControls", "basePropertyControls", "props", "addPropertyControls", "SignInForm_default"]
}
