{"version":3,"file":"EmailPolicy.DXcQtrLs.mjs","names":[],"sources":["https:/framerusercontent.com/modules/UbFnlCVtUWQvQuWePUXs/G7c4kwgLiKacKoMmDIhQ/EmailPolicy.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef}from\"react\";/**\n * SILIA — EMAIL POLICY\n *\n * Fuente única de la política de \"solo correos de trabajo\" para los formularios\n * nativos de Framer del sitio en inglés. El modal en español\n * (`SiliaLeadModal.tsx`) lleva su propia copia de esta misma lista porque es un\n * componente autocontenido; si agregás un dominio, agregalo en los dos lados.\n *\n * El bloqueo es del navegador: es un filtro de calidad de leads, no un control\n * de acceso. Quien quiera saltárselo con devtools puede.\n */const PERSONAL_EMAIL_DOMAINS=new Set([// ── Gratuitos globales ──────────────────────────────────────────────────\n\"gmail.com\",\"googlemail.com\",\"hotmail.com\",\"hotmail.es\",\"hotmail.com.mx\",\"hotmail.com.ar\",\"hotmail.com.br\",\"hotmail.co.uk\",\"hotmail.fr\",\"hotmail.it\",\"hotmail.cl\",\"outlook.com\",\"outlook.es\",\"outlook.com.br\",\"outlook.com.ar\",\"outlook.fr\",\"live.com\",\"live.com.mx\",\"live.com.ar\",\"live.com.br\",\"live.co.uk\",\"live.fr\",\"msn.com\",\"yahoo.com\",\"yahoo.com.mx\",\"yahoo.com.ar\",\"yahoo.com.br\",\"yahoo.es\",\"yahoo.co.uk\",\"yahoo.fr\",\"yahoo.ca\",\"ymail.com\",\"rocketmail.com\",\"icloud.com\",\"me.com\",\"mac.com\",\"aol.com\",\"proton.me\",\"protonmail.com\",\"pm.me\",\"gmx.com\",\"gmx.net\",\"gmx.de\",\"mail.com\",\"email.com\",\"usa.com\",\"yandex.com\",\"yandex.ru\",\"mail.ru\",\"zoho.com\",\"hey.com\",\"fastmail.com\",\"tutanota.com\",\"tuta.io\",\"inbox.com\",\"web.de\",\"libero.it\",\"orange.fr\",\"wanadoo.fr\",\"laposte.net\",\"free.fr\",\"sfr.fr\",\"qq.com\",\"163.com\",\"126.com\",\"sina.com\",\"naver.com\",\"daum.net\",// ── Gratuitos de LATAM ──────────────────────────────────────────────────\n\"prodigy.net.mx\",\"terra.com\",\"terra.com.mx\",\"terra.com.br\",\"uol.com.br\",\"bol.com.br\",\"ig.com.br\",\"globo.com\",\"globomail.com\",\"r7.com\",\"vtr.net\",// ── Desechables / temporales ────────────────────────────────────────────\n\"mailinator.com\",\"10minutemail.com\",\"10minutemail.net\",\"20minutemail.com\",\"minuteinbox.com\",\"guerrillamail.com\",\"guerrillamail.net\",\"guerrillamail.org\",\"guerrillamail.biz\",\"guerrillamail.de\",\"guerrillamailblock.com\",\"sharklasers.com\",\"grr.la\",\"spam4.me\",\"temp-mail.org\",\"tempmail.com\",\"tempmail.net\",\"tempmail.plus\",\"tempmailo.com\",\"tempmailaddress.com\",\"tempr.email\",\"tempinbox.com\",\"throwawaymail.com\",\"yopmail.com\",\"yopmail.fr\",\"yopmail.net\",\"trashmail.com\",\"trashmail.de\",\"mytrashmail.com\",\"dispostable.com\",\"fakeinbox.com\",\"emailfake.com\",\"generator.email\",\"mailnesia.com\",\"maildrop.cc\",\"getnada.com\",\"nada.email\",\"emailondeck.com\",\"mohmal.com\",\"mailcatch.com\",\"spamgourmet.com\",\"jetable.org\",\"discard.email\",\"spambog.com\",\"mailexpire.com\",\"incognitomail.com\",\"anonbox.net\",\"harakirimail.com\",\"moakt.com\",\"disbox.net\",\"burnermail.io\",\"spamex.com\",\"deadaddress.com\",\"mailquack.com\",\"mail-temporaire.fr\",\"1secmail.com\",\"1secmail.net\",\"1secmail.org\",\"dropmail.me\",\"crazymailing.com\",\"mailpoof.com\",\"mail.tm\",\"linshiyouxiang.net\",\"cock.li\"]);/** Lo que está después del último `@`. Vacío si no hay `@`. */function emailDomain(email){const at=email.lastIndexOf(\"@\");return at===-1?\"\":email.slice(at+1);}function normalizeEmail(value){return value.trim().toLowerCase().replace(/\\.$/,\"\").slice(0,254);}/**\n * `true` si el correo es de un proveedor personal (gratuito o desechable).\n *\n * Un subdominio hereda el bloqueo de su dominio padre — `x@mail.gmail.com`\n * cae por `gmail.com` — así que se prueba cada sufijo del dominio y no solo\n * la coincidencia exacta. El bucle se detiene antes del TLD suelto.\n */export function isPersonalEmail(value){const domain=emailDomain(normalizeEmail(value));if(!domain)return false;if(PERSONAL_EMAIL_DOMAINS.has(domain))return true;const labels=domain.split(\".\");for(let i=1;i<labels.length-1;i++){if(PERSONAL_EMAIL_DOMAINS.has(labels.slice(i).join(\".\")))return true;}return false;}/** El sitio en inglés no tiene capa de copy localizado: el mensaje va acá. */export const WORK_EMAIL_MESSAGE=\"A corporate email is required.\";/**\n * Marca el campo de correo como inválido cuando trae un dominio personal.\n *\n * Se apoya en la validación nativa del navegador (`setCustomValidity`): los\n * formularios nativos de Framer no llevan `novalidate`, así que un campo con\n * mensaje de validez propio bloquea el envío y muestra el aviso del navegador.\n * No se inyecta DOM ni se toca el layout de ninguna página.\n */export function applyWorkEmailValidity(input){const blocked=isPersonalEmail(input.value);input.setCustomValidity(blocked?WORK_EMAIL_MESSAGE:\"\");return blocked;}/** El input de correo de un formulario, por tipo y con respaldo por nombre. */export function findEmailInput(form){const byType=form.querySelector('input[type=\"email\"]');if(byType instanceof HTMLInputElement)return byType;const byName=form.querySelector('input[name=\"Email\" i]');return byName instanceof HTMLInputElement?byName:null;}/**\n * Corta el envío si el correo es personal. Devuelve `true` si lo bloqueó.\n *\n * Se detiene la propagación además de `preventDefault` porque el submit propio\n * de Framer es un handler de React sobre el mismo formulario: sin cortar la\n * propagación, seguiría corriendo y mostraría un estado de éxito falso.\n */export function blockPersonalEmailSubmit(event){const form=event.currentTarget;if(!(form instanceof HTMLFormElement))return false;const input=findEmailInput(form);if(!input)return false;if(!applyWorkEmailValidity(input))return false;event.preventDefault();event.stopPropagation();const native=event.nativeEvent;native?.stopImmediatePropagation?.();form.reportValidity();return true;}/**\n * Override de solo-validación, para los formularios que **no** reenvían al\n * webhook (`/contact`, `/activate-plan`, los tres «Let's talk»). Los que sí\n * reenvían usan `withWebhookLeadForward`, que ya incorpora esta misma política:\n * un nodo de Framer solo admite un override, así que no se pueden apilar.\n */export function withWorkEmailOnly(Component){return /*#__PURE__*/forwardRef(function WithWorkEmailOnly(props,ref){function revalidate(event){const target=event?.target;if(!(target instanceof HTMLInputElement))return;if(target.type!==\"email\")return;applyWorkEmailValidity(target);}return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onInputCapture:event=>{revalidate(event);props.onInputCapture?.(event);},onBlurCapture:event=>{revalidate(event);props.onBlurCapture?.(event);},onSubmitCapture:event=>{if(blockPersonalEmailSubmit(event))return;props.onSubmitCapture?.(event);}});});}\nexport const __FramerMetadata__ = {\"exports\":{\"findEmailInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withWorkEmailOnly\":{\"type\":\"reactHoc\",\"name\":\"withWorkEmailOnly\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"blockPersonalEmailSubmit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isPersonalEmail\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WORK_EMAIL_MESSAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyWorkEmailValidity\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EmailPolicy.map"],"mappings":"kHAaklC,SAAS,EAAY,EAAM,CAAC,IAAM,EAAG,EAAM,YAAY,GAAG,EAAE,OAAO,IAAK,GAAG,GAAG,EAAM,MAAM,EAAG,CAAC,CAAE,CAAC,SAAS,EAAe,EAAM,CAAC,OAAO,EAAM,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAE,CAMhxC,SAAgB,EAAgB,EAAM,CAAC,IAAM,EAAO,EAAY,EAAe,CAAK,CAAC,EAAE,GAAG,CAAC,EAAO,MAAO,GAAM,GAAG,EAAuB,IAAI,CAAM,EAAE,MAAO,GAAK,IAAM,EAAO,EAAO,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,OAAO,EAAE,IAAK,GAAG,EAAuB,IAAI,EAAO,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,MAAO,GAAM,MAAO,EAAM,CAOtT,SAAgB,EAAuB,EAAM,CAAC,IAAM,EAAQ,EAAgB,EAAM,KAAK,EAAyD,OAAvD,EAAM,kBAAkB,EAAQ,EAAmB,EAAE,EAAS,CAAQ,CAAgF,SAAgB,EAAe,EAAK,CAAC,IAAM,EAAO,EAAK,cAAc,qBAAqB,EAAE,GAAG,aAAkB,iBAAiB,OAAO,EAAO,IAAM,EAAO,EAAK,cAAc,uBAAuB,EAAE,OAAO,aAAkB,iBAAiB,EAAO,IAAK,CAM9e,SAAgB,EAAyB,EAAM,CAAC,IAAM,EAAK,EAAM,cAAc,GAAG,EAAE,aAAgB,iBAAiB,MAAO,GAAM,IAAM,EAAM,EAAe,CAAI,EAAiN,MAA5M,CAAC,GAAsB,CAAC,EAAuB,CAAK,EAAS,IAAM,EAAM,eAAe,EAAE,EAAM,gBAAgB,EAAiC,EAAZ,aAAoB,2BAA2B,EAAE,EAAK,eAAe,EAAS,GAAK,CAK9X,SAAgB,EAAkB,EAAU,CAAC,OAAoB,EAAW,SAA2B,EAAM,EAAI,CAAC,SAAS,EAAW,EAAM,CAAC,IAAM,EAAO,GAAO,OAAY,aAAkB,kBAA4B,EAAO,OAAO,SAAe,EAAuB,CAAM,CAAE,CAAC,OAAoB,EAAK,EAAU,CAAK,MAAI,GAAG,EAAM,eAAe,GAAO,CAAC,EAAW,CAAK,EAAE,EAAM,iBAAiB,CAAK,CAAE,EAAE,cAAc,GAAO,CAAC,EAAW,CAAK,EAAE,EAAM,gBAAgB,CAAK,CAAE,EAAE,gBAAgB,GAAO,CAAI,EAAyB,CAAK,GAAS,EAAM,kBAAkB,CAAK,CAAE,CAAC,CAAC,CAAE,CAAC,CAAE,qBArC9hB,IAA8B,EAU/D,EAAuB,IAAI,IAAI,4tDAGw+B,CAAC,EAM5nB,EAAmB"}