{"version":3,"file":"SignUpForm.kVLJ0APH.mjs","names":["useState","useMemo","auth","useCallback","__esmMin","window","ne","init_ssg_sandbox_shims","_e","pe","p","c","init_jsx_runtime","init_npm_react_18_3_1","ce","useRouter","withCSS","inferInitialRouteFromPath","addPropertyControls","ControlType","init_framer_BWFVvmND","init_framerauth_esm","N","basePropertyControls","init_BaseForm","BaseForm","baseInputs","defaultButtonLabelValidateLicenseKey","defaultButtonLabelStepSignUp","SignUpForm","isBrowser","getParamValue","validatePassword","snakeToCamel","inputsPropertyControls","exportBasePropertyControls","init_SignUpForm","baseProps","passwordValidationShadowStyles","inputs","setInputs","inputControlName","input","passwordValidation","setPasswordValidation","initializing","setInitializing","licenseKey","setLicenseKey","validLicenseKey","setValidLicenseKey","router","licenseKeyStepCompleted","defaultLicenseKey","newInputs","inputField","display","label","placeholder","accountPage","site","_","error","navigateTo","path","hash","link","routeId","pathVariables","renderValidationMessage","isValid","message","onSubmitValidateLicenseKey","submittedLicenseKey","formData","handleOnChange","field","onSubmitSignUp","validateResult","v","formMarkup","stepBaseProps","onSubmit","refinedInputs","urlParams","paramName","hashParams","regex","password","str","index","word","props"],"sources":["https:/framerusercontent.com/modules/0ian5FEz7IgQEXM49lDW/t1qa2kmI8G3xgbMjLln1/SignUpForm.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,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:\"License key\",name:\"license_key\",type:\"text\",required:true,extra:false,placeholder:\"License key\"},{label:\"First name\",name:\"first_name\",type:\"text\",required:true,extra:false,placeholder:\"First name\",hidden:true},{label:\"Last name\",name:\"last_name\",type:\"text\",required:false,extra:true,placeholder:\"Last name\",hidden:true},{label:\"Email\",name:\"email\",type:\"email\",required:true,extra:false,placeholder:\"Email\",hidden:true},{label:\"Password\",name:\"password\",type:\"password\",required:true,extra:false,placeholder:\"Password\",hidden:true}];const defaultButtonLabelValidateLicenseKey=\"Continue\"// Default submit button label on this form.\n;const defaultButtonLabelStepSignUp=\"Sign Up\"// Default submit button label on this form.\n;const exposePasswordVisibilityToggle=true// Expose password visibility toggle property for password inputs.\n;const exposePasswordValidator=true// Expose password validator property for password inputs.\n;/**\n * Sign Up Form\n * By Joel Whitaker\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 40\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */const SignUpForm=withCSS(function SignUpForm({...baseProps}){const passwordValidationShadowStyles=baseProps.passwordValidator.shadowObject?`${baseProps.passwordValidator.shadowObject.shadowX}px ${baseProps.passwordValidator.shadowObject.shadowY}px ${baseProps.passwordValidator.shadowObject.shadowBlur}px ${baseProps.passwordValidator.shadowObject.shadowColor}`:null;// We can override inputs with property controls.\nconst[inputs,setInputs]=useState(baseInputs.filter(input=>{var _baseProps_inputFields_inputControlName;const inputControlName=snakeToCamel(input.name);return!(((_baseProps_inputFields_inputControlName=baseProps.inputFields[inputControlName])===null||_baseProps_inputFields_inputControlName===void 0?void 0:_baseProps_inputFields_inputControlName.display)===false);}));const[passwordValidation,setPasswordValidation]=useState({uppercase:false,lowercase:false,digit:false,special:false,length:false});const[initializing,setInitializing]=useState(true);const[licenseKey,setLicenseKey]=useState(null);const[validLicenseKey,setValidLicenseKey]=useState(false);const router=useRouter();const licenseKeyStepCompleted=useMemo(()=>{// Check if license key step (step 1 of step 2) is completed.\nreturn baseProps.displayLicenseKey===false||validLicenseKey===true&&licenseKey!==null;},[validLicenseKey,licenseKey,baseProps.displayLicenseKey]);useEffect(()=>{const defaultLicenseKey=getParamValue(\"license_key\");setLicenseKey(defaultLicenseKey);},[]);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);}},[undefined,baseProps.inputFields]);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(baseProps.link){navigateTo(baseProps.link);}}}}}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 renderValidationMessage=(message,isValid)=>{var _baseProps_passwordValidator_font,_baseProps_label_font;return /*#__PURE__*/_jsxs(\"div\",{style:{color:baseProps.passwordValidator.color||baseProps.label.color,...baseProps.passwordValidator.font||baseProps.label.font,opacity:isValid?1:.5,display:\"flex\",alignItems:\"center\"},children:[isValid?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"currentColor\",viewBox:\"0 0 16 16\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"})}):/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"currentColor\",viewBox:\"0 0 16 16\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7.47 6.97L4.22 3.72a.75.75 0 00-1.06 1.06L6.38 8l-3.22 3.22a.75.75 0 101.06 1.06L7.47 9.06l3.25 3.25a.75.75 0 001.06-1.06L8.53 8l3.25-3.25a.75.75 0 00-1.06-1.06L7.47 6.94v.03z\"})}),\" \",/*#__PURE__*/_jsx(\"span\",{style:{flex:1,marginLeft:\"5px\",textAlign:((_baseProps_passwordValidator_font=baseProps.passwordValidator.font)===null||_baseProps_passwordValidator_font===void 0?void 0:_baseProps_passwordValidator_font.textAlign)||((_baseProps_label_font=baseProps.label.font)===null||_baseProps_label_font===void 0?void 0:_baseProps_label_font.textAlign)},children:message})]});};const onSubmitValidateLicenseKey=useCallback(async formData=>{const submittedLicenseKey=formData.license_key;// Prevent submitting while submitting\nconst{data:_,error}=await auth.validateLicenseKey({license_key:submittedLicenseKey});if(error){return{ok:false,message:error.message};}setLicenseKey(submittedLicenseKey);setValidLicenseKey(true);// Reset password validation.\n// On some browsers, the password validation may not reset when the input is hidden.\nsetPasswordValidation({uppercase:false,lowercase:false,digit:false,special:false,length:false});return{ok:true,message:null};},[]);const handleOnChange=field=>{if(field.type===\"password\"){// Validate password whenever the input value is changed, eg when user is typing\nsetPasswordValidation(validatePassword(field.value));}};const onSubmitSignUp=useCallback(async formData=>{// Test password validation\nconst validateResult=validatePassword(formData.password);if(Object.values(validateResult).some(v=>v===false)){setPasswordValidation(validateResult);return{ok:false,message:\"Password does not meet requirements.\"};}const{data:_,error}=await auth.signUp({email:formData.email,password:formData.password,options:{data:{first_name:formData.first_name,last_name:formData.last_name,license_key:licenseKey}}});if(error){return{ok:false,message:error.message};}// const event = new Event('framerAuthRefetchUser');\n// window.dispatchEvent(event);\nreturn{ok:true,message:\"Account created successfully.\"};},[licenseKey]);const formMarkup=useMemo(()=>{// Here we determine what to show in the form based on the current step.\n// Define the base props for the step\nconst stepBaseProps={...baseProps,link:licenseKeyStepCompleted?baseProps.link:undefined,button:{...baseProps.button,// Set the button label based on the current step\nlabel:licenseKeyStepCompleted?baseProps.button.labelSignUpStep:baseProps.button.labelValidateLicenseKeyStep}};// Determine which onSubmit function to use based on the current step\nconst onSubmit=licenseKeyStepCompleted?onSubmitSignUp:onSubmitValidateLicenseKey;// The trick below hides/shows inputs based on the current step.\n// This is a hack to avoid issues with different numbers of hooks.\n// This can be be made more dynamic. Would require the passwordInput sub-component\n// in AuthBaseForm to be a controlled component with no hook to toggle visibility inside the component\nconst refinedInputs=inputs.map(input=>{if(input.name===\"license_key\"){return{// licenseKey input; the input in Step 1\n...input,hidden:licenseKeyStepCompleted===true,required:licenseKeyStepCompleted===false};}return{// All inputs except licenseKey; the inputs in Step 2\n...input,hidden:licenseKeyStepCompleted===false,required:licenseKeyStepCompleted===true};});return /*#__PURE__*/_jsx(BaseForm,{...stepBaseProps,isInitializing:initializing,inputs:refinedInputs,onSubmit:onSubmit,onInputChange:handleOnChange,defaultValues:{license_key:licenseKey}});},[validLicenseKey,licenseKey,baseProps,inputs])// Only re-compute the form when the step changes.\n;return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"auto\",display:\"flex\",flexDirection:\"column\",position:\"relative\",gap:baseProps.gap},children:[formMarkup,!initializing&&licenseKeyStepCompleted&&baseProps.displayPasswordValidator&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",borderRadius:baseProps.passwordValidator.borderRadius,background:baseProps.passwordValidator.fill,paddingTop:baseProps.passwordValidator.paddingTop,paddingRight:baseProps.passwordValidator.paddingRight,paddingBottom:baseProps.passwordValidator.paddingBottom,paddingLeft:baseProps.passwordValidator.paddingLeft,gap:baseProps.passwordValidator.gap,border:baseProps.passwordValidator.borderObject?`${baseProps.passwordValidator.borderObject.borderWidth}px solid ${baseProps.passwordValidator.borderObject.borderColor}`:undefined,boxShadow:passwordValidationShadowStyles||\"none\"},children:[renderValidationMessage(// \"At least 8 characters\",\nbaseProps.passwordValidator.labels.length,passwordValidation.length),renderValidationMessage(// \"At least one uppercase letter\",\nbaseProps.passwordValidator.labels.uppercase,passwordValidation.uppercase),renderValidationMessage(// \"At least one lowercase letter\",\nbaseProps.passwordValidator.labels.lowercase,passwordValidation.lowercase),renderValidationMessage(// \"At least one digit\",\nbaseProps.passwordValidator.labels.digit,passwordValidation.digit),renderValidationMessage(// \"At least one special character\",\nbaseProps.passwordValidator.labels.special,passwordValidation.special)]})]});},[]);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 validatePassword=password=>{const regex={uppercase:/[A-Z]/,lowercase:/[a-z]/,digit:/\\d/,special:/\\W|_/,length:/.{8,}/};return{uppercase:regex.uppercase.test(password),lowercase:regex.lowercase.test(password),digit:regex.digit.test(password),special:regex.special.test(password),length:regex.length.test(password)};};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:false}:undefined,label:{title:\"Label\",type:ControlType.String,defaultValue:input.label}}};});const exportBasePropertyControls={displayLicenseKey:{title:\"License Key\",type:ControlType.Boolean,defaultValue:false},...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,labelValidateLicenseKeyStep:{...basePropertyControls.button.controls.label,title:\"Step 1 Label\",defaultValue:defaultButtonLabelValidateLicenseKey},labelSignUpStep:{...basePropertyControls.button.controls.label,title:\"Step 2 Label\",defaultValue:defaultButtonLabelStepSignUp}}},displayPasswordValidator:{title:\"Password Validator\",type:ControlType.Boolean,defaultValue:true,hidden:!exposePasswordValidator},passwordValidator:{title:\"Password Validator\",type:ControlType.Object,hidden:props=>!exposePasswordValidator||!props.displayPasswordValidator,controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},fill:{title:\"Fill\",type:ControlType.Color,defaultValue:\"transparent\"},color:{title:\"Text\",type:ControlType.Color,defaultValue:\"#000\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},gap:{title:\"Gap\",type:ControlType.Number,defaultValue:10,min:0},borderRadius:{title:\"Radius\",type:ControlType.Number,displayStepper:true,min:0},labels:{type:ControlType.Object,title:\"Labels\",controls:{length:{title:\"Length\",type:ControlType.String,defaultValue:\"At least 8 characters\"},uppercase:{title:\"Uppercase\",type:ControlType.String,defaultValue:\"At least one uppercase letter\"},lowercase:{title:\"Lowercase\",type:ControlType.String,defaultValue:\"At least one lowercase letter\"},digit:{title:\"Digit\",type:ControlType.String,defaultValue:\"At least one digit\"},special:{title:\"Special\",type:ControlType.String,defaultValue:\"At least one special character\"}}},borderObject:{type:ControlType.Object,title:\"Border\",optional:true,controls:{borderWidth:{title:\"Width\",type:ControlType.Number,displayStepper:true,defaultValue:1},borderColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(200,200,200,0.5)\"}}},shadowObject:{type:ControlType.Object,title:\"Shadow\",optional:true,controls:{shadowColor:{title:\"Color\",type:ControlType.Color},shadowX:{title:\"X\",type:ControlType.Number,min:-100,max:100},shadowY:{title:\"Y\",type:ControlType.Number,min:-100,max:100},shadowBlur:{title:\"Blur\",type:ControlType.Number,min:0,max:100}}}}}};// @ts-ignore - TS doesn't like our basePropertyControls type.\naddPropertyControls(SignUpForm,exportBasePropertyControls);SignUpForm.defaultProps={...BaseForm.defaultProps,...SignUpForm.defaultProps};export default SignUpForm;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SignUpForm\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"300\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SignUpForm.map"],"mappings":"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"}