{"version":3,"file":"FreemiumForm.CFy02dfM.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/3FQvSplwCAYzYvjQu3mv/MOxg1L67tqTxdYOPhLWK/FreemiumForm.js"],"sourcesContent":["// Welcome to Code in Framer\n// Get Started: https://www.framer.com/developers/\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";import{motion}from\"framer-motion\";// Spinner local. Antes esto venía de `import Loading from \"./Loading.tsx\"`,\n// pero ese módulo no existe en el proyecto y hacía que el archivo no\n// exportara nada al recompilar (lo que rompía el modal de registro en todas\n// las landings). Se define aquí para no depender de un fichero externo.\nconst Loading=({color=\"#FFFFFF\"})=>/*#__PURE__*/_jsx(motion.span,{style:{width:18,height:18,borderRadius:\"50%\",borderWidth:2,borderStyle:\"solid\",borderColor:\"rgba(255,255,255,0.35)\",borderTopColor:color,display:\"inline-block\",boxSizing:\"border-box\"},animate:{rotate:360},transition:{repeat:Infinity,ease:\"linear\",duration:.8}});const Input=({labelText,errorText,...props})=>/*#__PURE__*/_jsxs(\"div\",{style:inputContainerStyle,children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:labelText}),/*#__PURE__*/_jsx(\"input\",{style:{...inputStyle,...errorText?inputStyleError:null},...props}),errorText?/*#__PURE__*/_jsx(\"span\",{style:fieldErrorStyle,children:errorText}):null]});// Marcador de vertical por landing.\n// El backend de create-freemium solo reenvía a ActiveCampaign cuatro campos\n// (utm_source, utm_medium, utm_campaign y utm_content) y descarta en silencio\n// cualquier otro, así que la academia viaja pegada al final de utm_content.\n// La automatización de cada vertical en AC condiciona su entrada a este\n// marcador. Para añadir una academia nueva basta con otra línea aquí.\n// OJO: las claves tienen que ser slugs completos de landing por academia.\n// Nunca meter aquí la landing genérica /registro-sistema-ninja: haría match\n// con todas las demás y se aplicaría el marcador equivocado.\nconst VERTICALES={\"registro-sistema-ninja-bomberos\":\"sn-vert-bomberos\",\"registro-sistema-ninja-fcs\":\"sn-vert-fcs\"};// Lee los UTM del navegador, igual que hace tu función sE / el script de AC:\n// 1) la URL (?utm_source=...)  2) el helper global  3) localStorage 'tracking'\nfunction getUtms(){if(typeof window===\"undefined\")return{};const urlParams=new URLSearchParams(window.location.search);let trk=null;try{const trkstr=localStorage.getItem(\"tracking\");if(trkstr)trk=JSON.parse(trkstr);}catch(e){}const pick=(urlKey,trkKey)=>{const fromUrl=urlParams.get(urlKey);if(fromUrl)return fromUrl;if(window.getQueryParamsFromLocalStorage){const v=window.getQueryParamsFromLocalStorage(urlKey);if(v)return v;}if(trk&&trk[trkKey])return trk[trkKey];if(trk&&trk[urlKey])return trk[urlKey];return undefined;};let utmContent=pick(\"utm_content\",\"utmContent\");// Si el registro viene de una landing por academia, marcamos utm_content.\n// Se concatena para no perder el valor que trae la campaña de Meta, y solo\n// si no estaba ya (evita duplicar el marcador). Try/catch propio: si algo\n// falla aquí, el registro sigue funcionando exactamente igual que antes.\ntry{const path=(window.location.pathname||\"\").toLowerCase();const slug=Object.keys(VERTICALES).find(k=>path.includes(k));if(slug){const marca=VERTICALES[slug];if(!utmContent)utmContent=marca;else if(!String(utmContent).includes(marca))utmContent=`${utmContent}|${marca}`;}}catch(e){}return{utm_source:pick(\"utm_source\",\"utmSource\"),utm_medium:pick(\"utm_medium\",\"utmMedium\"),utm_campaign:pick(\"utm_campaign\",\"utmCampaign\"),utm_content:utmContent};}// Hash SHA-256 en hexadecimal: el formato que Meta espera para Advanced\n// Matching. Normalizamos antes (trim + minúsculas) porque Meta hashea así en\n// su lado; si no, el match rate cae. Devuelve null si el navegador no soporta\n// crypto.subtle, y en ese caso simplemente no se envía el parámetro.\nasync function sha256Hex(value){try{const subtle=window?.crypto?.subtle;if(!subtle)return null;const data=new TextEncoder().encode(value);const digest=await subtle.digest(\"SHA-256\",data);return Array.from(new Uint8Array(digest)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}catch(e){return null;}}export default function HealthForm(props){const[isFetching,setFetching]=useState(false);const[error,setError]=useState(\"\");const[form,setForm]=useState({name:\"\",acceptTerms:false,email:\"\"});const onSubmit=async ev=>{ev.preventDefault();if(!isFetching){setFetching(true);// TRACKING: el usuario pulsa el botón de registro\nif(typeof window!==\"undefined\"&&window.posthog){window.posthog.capture(\"formulario_registro_iniciado\",{page:window.location.pathname});}try{const utms=getUtms();const res=await fetch(\"https://app.formacion.ninja/api/account/create-freemium\",{method:\"POST\",headers:{\"Content-Type\":\"application/json; charset=utf-8\"},body:JSON.stringify({...form,...utms})});if(!res.ok){throw{status:res.status,message:`Unexpected error ${await res.status}`};}// ⬇️ ⬇️ ⬇️  CAMBIO: leer la respuesta y guardar el magic link\nconst data=await res.json();if(data?.magicLoginUrl){// Guardamos el enlace de autologin para que /gracias lo use.\n// sessionStorage NO expone el token en la URL. Funciona porque\n// el form y /gracias están ambos bajo formacion.ninja.\nsessionStorage.setItem(\"ninja_magic\",data.magicLoginUrl);}// ⬆️ ⬆️ ⬆️  FIN CAMBIO\n// ⬇️ Advanced Matching (petición de Jesús, 26-ago-2026):\n// guardamos el email HASHEADO (nunca en claro) para que la\n// página de gracias lo envíe junto a la conversión y Meta\n// case mejor el registro. Try/catch propio: si esto falla,\n// el registro y la redirección siguen funcionando igual.\ntry{const emHash=await sha256Hex((form.email||\"\").trim().toLowerCase());if(emHash)sessionStorage.setItem(\"ninja_em\",emHash);}catch(e){}// ⬆️ FIN Advanced Matching\n// TRACKING: registro completado con éxito (este es el KPI real)\nif(typeof window!==\"undefined\"&&window.posthog){window.posthog.capture(\"formulario_registro_enviado\",{page:window.location.pathname,email:form.email});}window.location.href=\"/gracias/sistema-ninja\";}catch(ex){// TRACKING: error en el registro\nif(typeof window!==\"undefined\"&&window.posthog){window.posthog.capture(\"formulario_registro_error\",{page:window.location.pathname,error_status:ex?.status??\"unknown\",email_duplicate:ex?.status===409});}setError(ex?.status===409?\"Ya existe una cuenta asociada a este email. Elige un email diferente o inicia sesi\\xf3n en la plataforma.\":\"Vaya, parece que tenemos problemas a la hora de registrarte, int\\xe9ntalo m\\xe1s tarde.\");console.error(ex);}setFetching(false);}};const onChange=(field,ev)=>{setError(\"\");setForm({...form,[field]:field===\"acceptTerms\"?ev.target.checked:ev.target.value});};return /*#__PURE__*/_jsx(\"div\",{style:pageStyle,children:/*#__PURE__*/_jsxs(\"form\",{onSubmit:onSubmit,style:cardStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:headerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:titleStyle,children:\"Reg\\xedstrate gratis\"}),/*#__PURE__*/_jsx(\"div\",{style:subtitleStyle,children:\"Accede al curso gratuito ahora.\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:formBodyStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:rowStyle,children:/*#__PURE__*/_jsx(Input,{labelText:\"Nombre*\",required:true,placeholder:\"Tu nombre\",onChange:onChange.bind(onChange,\"name\")})}),/*#__PURE__*/_jsx(\"div\",{style:rowStyle,children:/*#__PURE__*/_jsx(Input,{labelText:\"Email*\",required:true,placeholder:\"Tu correo\",type:\"email\",onChange:onChange.bind(onChange,\"email\")})}),/*#__PURE__*/_jsxs(\"div\",{style:termsRowStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",onChange:onChange.bind(onChange,\"acceptTerms\"),style:checkboxStyle,required:true}),/*#__PURE__*/_jsxs(\"span\",{style:policeStyle,children:[\"He le\\xeddo y acepto la\",\" \",/*#__PURE__*/_jsx(\"a\",{style:linkStyle,href:\"https://formacion.ninja/aviso-legal/politica-de-privacidad\",children:\"Pol\\xedtica de Privacidad\"})]})]}),/*#__PURE__*/_jsx(\"div\",{style:rowStyle,children:/*#__PURE__*/_jsx(motion.button,{whileTap:{scale:.98},whileHover:{scale:1.02},style:buttonStyle,type:\"submit\",disabled:isFetching,children:!isFetching?\"Reg\\xedstrate gratis\":/*#__PURE__*/_jsx(\"span\",{style:loadingWrapStyle,children:/*#__PURE__*/_jsx(Loading,{color:\"#FFFFFF\"})})})}),error?/*#__PURE__*/_jsx(\"div\",{style:errorBoxStyle,children:error}):null,/*#__PURE__*/_jsx(\"div\",{style:footerHintStyle,children:\"Al registrarte, se crear\\xe1 tu cuenta y podr\\xe1s iniciar sesi\\xf3n en la plataforma.\"})]})]})});}/* ---------- Styles (Minimal / shadcn-ish) ---------- */const pageStyle={width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:24,background:\"transparent\"};const cardStyle={width:\"100%\",maxWidth:560,borderRadius:16,border:\"1px solid #E2E8F0\",background:\"#FFFFFF\",boxShadow:\"0 1px 2px rgba(15, 23, 42, 0.06), 0 12px 32px rgba(15, 23, 42, 0.08)\",padding:20};const headerStyle={display:\"flex\",flexDirection:\"column\",gap:6,paddingBottom:14,borderBottom:\"1px solid #F1F5F9\",marginBottom:16};const titleStyle={fontSize:20,fontWeight:800,letterSpacing:-.3,color:\"#0F172A\"};const subtitleStyle={fontSize:14,color:\"#475569\",lineHeight:1.4};const formBodyStyle={display:\"flex\",flexDirection:\"column\",gap:14};const rowStyle={gap:12,display:\"flex\",flexDirection:\"row\",width:\"100%\"};const termsRowStyle={display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:10,padding:\"8px 10px\",borderRadius:12,border:\"1px solid #F1F5F9\",background:\"#FFFFFF\"};const inputContainerStyle={position:\"relative\",display:\"flex\",flexDirection:\"column\",width:\"100%\",gap:6};const labelStyle={fontSize:13,fontWeight:600,color:\"#334155\"};const inputStyle={width:\"100%\",height:48,borderRadius:12,border:\"1px solid #CBD5E1\",background:\"#FFFFFF\",padding:\"0 14px\",fontSize:15,color:\"#0F172A\",boxShadow:\"0 1px 0 rgba(15, 23, 42, 0.02)\"};const inputStyleError={borderColor:\"rgba(220, 38, 38, 0.65)\",boxShadow:\"0 0 0 4px rgba(220, 38, 38, 0.10)\"};const checkboxStyle={width:18,height:18,accentColor:\"#E30613\",cursor:\"pointer\"};const policeStyle={fontSize:13,color:\"#475569\",lineHeight:1.4};const linkStyle={color:\"#E30613\",fontWeight:600,textDecoration:\"none\"};const buttonStyle={cursor:\"pointer\",display:\"flex\",width:\"100%\",height:52,alignItems:\"center\",justifyContent:\"center\",fontSize:15,fontWeight:800,letterSpacing:.2,color:\"#FFFFFF\",borderRadius:12,border:\"1px solid rgba(0,0,0,0.02)\",background:\"#E30613\",boxShadow:\"0 12px 28px rgba(227, 6, 19, 0.18)\"};const loadingWrapStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"center\"};const errorBoxStyle={width:\"100%\",borderRadius:12,border:\"1px solid rgba(220, 38, 38, 0.25)\",background:\"rgba(220, 38, 38, 0.06)\",color:\"#991B1B\",padding:\"10px 12px\",fontSize:13,lineHeight:1.4};const fieldErrorStyle={fontSize:12,color:\"#DC2626\"};const footerHintStyle={fontSize:12,color:\"#64748B\",textAlign:\"center\",paddingTop:6};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HealthForm\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FreemiumForm.map"],"mappings":"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"}