{"version":3,"file":"ReadNote.D6BAM8Tt.mjs","names":["React.useState","React.useRef","__esmMin","init_npm_react_18_3_1","window","_e","de","p","ce","init_ssg_sandbox_shims","addPropertyControls","init_framer_DS5RHCUB","ControlType","useWindowWidth","width","setWidth","handler","useIsEN","isEN","setIsEN","check","id","b64decode","s","c","b64urlDecode","padded","pad","getAesKey","password","keyBuf","raw","decryptNote","key","keyFragment","decrypted","iv","ciphertext","ReadNote","isMobile","t","en","es","createNoteHref","meta","status","setStatus","content","setContent","errorMsg","setErrorMsg","setPassword","wrongPassword","setWrongPassword","attemptsLeft","setAttemptsLeft","idRef","keyRef","fetchNote","res","workerUrl","data","handlePasswordSubmit","plaintext","base","wrap","card","divider","label","inputStyle","btnPrimary","BLUE","linkBtn","isLastAttempt","dotColor","filled","i","init_ReadNote","init_jsx_runtime"],"sources":["https:/framerusercontent.com/modules/DHu6XzWDOAeEZpImmSNb/TJPyHbB8laxu5JkafZXS/ReadNote.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";// ── Responsive hook ───────────────────────────────────────────────────────────\nfunction useWindowWidth(){const[width,setWidth]=React.useState(typeof window!==\"undefined\"?window.innerWidth:1200);React.useEffect(()=>{if(typeof window===\"undefined\")return;const handler=()=>setWidth(window.innerWidth);window.addEventListener(\"resize\",handler);return()=>window.removeEventListener(\"resize\",handler);},[]);return width;}// ── Locale hook ───────────────────────────────────────────────────────────────\nfunction useIsEN(){const[isEN,setIsEN]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;// Same code runs on /nota and /en/nota — poll the path instead of\n// checking once, since the published site navigates without a full reload.\nconst check=()=>setIsEN(window.location.pathname.startsWith(\"/en\"));check();const id=setInterval(check,300);return()=>clearInterval(id);},[]);return isEN;}// ── Crypto ────────────────────────────────────────────────────────────────────\nfunction b64decode(s){return new Uint8Array(Array.from(atob(s),c=>c.charCodeAt(0))).buffer;}function b64urlDecode(s){const padded=s.replace(/-/g,\"+\").replace(/_/g,\"/\");const pad=(4-padded.length%4)%4;return b64decode(padded+\"=\".repeat(pad));}async function getAesKey(keyBuf,password){if(!password){return crypto.subtle.importKey(\"raw\",keyBuf,{name:\"AES-GCM\",length:256},false,[\"decrypt\"]);}const raw=await crypto.subtle.importKey(\"raw\",new TextEncoder().encode(password),\"PBKDF2\",false,[\"deriveKey\"]);return crypto.subtle.deriveKey({name:\"PBKDF2\",salt:keyBuf,iterations:1e5,hash:\"SHA-256\"},raw,{name:\"AES-GCM\",length:256},false,[\"decrypt\"]);}async function decryptNote(ciphertext,iv,keyFragment,password){const key=await getAesKey(b64urlDecode(keyFragment),password);const decrypted=await crypto.subtle.decrypt({name:\"AES-GCM\",iv:b64decode(iv)},key,b64decode(ciphertext));return new TextDecoder().decode(decrypted);}const BLUE=\"#009DFF\";// ── Component ─────────────────────────────────────────────────────────────────\nexport default function ReadNote({workerUrl=\"https://notes.tracewiseosint.com\"}){const width=useWindowWidth();const isMobile=width<768;const isEN=useIsEN();const t=(es,en)=>isEN?en:es;const createNoteHref=isEN?\"/en/nota-segura\":\"/nota-segura\";React.useEffect(()=>{if(typeof document===\"undefined\")return;let meta=document.querySelector('meta[name=\"viewport\"]');if(!meta){meta=document.createElement(\"meta\");meta.name=\"viewport\";document.head.appendChild(meta);}meta.content=\"width=device-width, initial-scale=1.0\";},[]);const[status,setStatus]=React.useState(\"loading\");const[content,setContent]=React.useState(\"\");const[errorMsg,setErrorMsg]=React.useState(\"\");const[password,setPassword]=React.useState(\"\");const[wrongPassword,setWrongPassword]=React.useState(false);const[attemptsLeft,setAttemptsLeft]=React.useState(3);const idRef=React.useRef(\"\");const keyRef=React.useRef(\"\");React.useEffect(()=>{if(typeof window===\"undefined\")return;const params=new URLSearchParams(window.location.search);const id=params.get(\"id\");const key=window.location.hash.slice(1);if(!id||!key){setStatus(\"not_found\");return;}idRef.current=id;keyRef.current=key;fetchNote(id);},[]);const fetchNote=async id=>{try{const res=await fetch(`${workerUrl}/api/note/${encodeURIComponent(id)}`);if(res.status===404){setStatus(\"not_found\");return;}if(!res.ok)throw new Error(`Error ${res.status}`);const data=await res.json();if(data.passwordRequired){setAttemptsLeft(data.attemptsLeft);setStatus(\"password_required\");return;}setContent(await decryptNote(data.ciphertext,data.iv,keyRef.current));setStatus(\"done\");}catch(e){setErrorMsg(e.message||t(\"Error inesperado\",\"Unexpected error\"));setStatus(\"error\");}};const handlePasswordSubmit=async()=>{if(!password.trim()||status===\"decrypting\")return;setStatus(\"decrypting\");setWrongPassword(false);try{const res=await fetch(`${workerUrl}/api/note/${encodeURIComponent(idRef.current)}`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"}});if(res.status===404){setStatus(\"not_found\");return;}if(!res.ok)throw new Error(`Error ${res.status}`);const data=await res.json();try{const plaintext=await decryptNote(data.ciphertext,data.iv,keyRef.current,password.trim());// Correct password — if the server still holds the note (attemptsLeft > 0), destroy it now\nif(data.attemptsLeft>0){fetch(`${workerUrl}/api/note/${encodeURIComponent(idRef.current)}`,{method:\"DELETE\"}).catch(()=>{});}setContent(plaintext);setStatus(\"done\");}catch{// Wrong password\nsetAttemptsLeft(data.attemptsLeft);setPassword(\"\");if(data.attemptsLeft<=0){setStatus(\"attempts_exhausted\");}else{setWrongPassword(true);setStatus(\"password_required\");}}}catch(e){setErrorMsg(e.message||t(\"Error inesperado\",\"Unexpected error\"));setStatus(\"error\");}};// ── Styles ─────────────────────────────────────────────────────────────────\nconst base={fontFamily:\"Inter, system-ui, -apple-system, sans-serif\",boxSizing:\"border-box\"};const wrap={...base,width:\"100%\",minHeight:\"100svh\",backgroundColor:\"#000\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",padding:isMobile?\"40px 16px\":\"80px 24px\"};const card={width:\"100%\",maxWidth:isMobile?\"100%\":580,display:\"flex\",flexDirection:\"column\",gap:isMobile?20:28};const divider={height:1,backgroundColor:\"#141414\"};const label={...base,fontSize:12,fontWeight:600,letterSpacing:\"0.1em\",textTransform:\"uppercase\",color:\"#555\",marginBottom:8,display:\"block\"};const inputStyle={...base,width:\"100%\",backgroundColor:\"#0d0d0d\",border:`1px solid ${wrongPassword?\"rgba(255,80,80,0.4)\":\"#1e1e1e\"}`,borderRadius:10,color:\"#e8e8e8\",fontSize:16,padding:\"14px 16px\",outline:\"none\",fontFamily:\"inherit\"};const btnPrimary={...base,width:\"100%\",padding:\"16px 20px\",backgroundColor:BLUE,border:\"none\",borderRadius:10,color:\"#fff\",fontSize:16,fontWeight:600,cursor:!password.trim()||status===\"decrypting\"?\"not-allowed\":\"pointer\",opacity:!password.trim()||status===\"decrypting\"?.4:1,transition:\"opacity 0.15s\",letterSpacing:\"-0.01em\",fontFamily:\"inherit\",WebkitTapHighlightColor:\"transparent\"};const linkBtn={...base,display:\"block\",width:\"100%\",padding:\"14px 20px\",backgroundColor:\"transparent\",border:\"1px solid #1e1e1e\",borderRadius:10,color:\"#555\",fontSize:16,cursor:\"pointer\",textAlign:\"center\",textDecoration:\"none\",fontFamily:\"inherit\",WebkitTapHighlightColor:\"transparent\"};// ── Loading ────────────────────────────────────────────────────────────────\nif(status===\"loading\"){return /*#__PURE__*/_jsxs(\"div\",{style:wrap,children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes _spin { to { transform: rotate(360deg) } }`}),/*#__PURE__*/_jsxs(\"div\",{style:{...card,alignItems:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:32,height:32,border:\"2px solid #1a1a1a\",borderTopColor:BLUE,borderRadius:\"50%\",animation:\"_spin 0.8s linear infinite\"}}),/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:16,color:\"#444\"},children:t(\"Obteniendo nota cifrada…\",\"Retrieving encrypted note…\")})]})]});}// ── Not found ──────────────────────────────────────────────────────────────\nif(status===\"not_found\"){return /*#__PURE__*/_jsx(\"div\",{style:wrap,children:/*#__PURE__*/_jsxs(\"div\",{style:card,children:[/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...base,width:56,height:56,borderRadius:\"50%\",backgroundColor:\"rgba(255,80,80,0.06)\",border:\"1px solid rgba(255,80,80,0.15)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",margin:\"0 auto 20px\",fontSize:22,color:\"#cc4444\"},children:\"✕\"}),/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:isMobile?26:30,fontWeight:700,color:\"#fff\",letterSpacing:\"-0.025em\",lineHeight:1.2},children:t(\"Nota no encontrada\",\"Note not found\")}),/*#__PURE__*/_jsxs(\"p\",{style:{...base,fontSize:16,color:\"#555\",lineHeight:1.65,marginTop:10},children:[t(\"Esta nota ya fue le\\xedda o el link ha expirado.\",\"This note has already been read or the link has expired.\"),/*#__PURE__*/_jsx(\"br\",{}),t(\"Las notas de Tracewise™ existen una sola vez.\",\"Tracewise™ notes exist only once.\")]})]}),/*#__PURE__*/_jsx(\"a\",{href:createNoteHref,style:linkBtn,children:t(\"Crear nueva nota →\",\"Create new note →\")})]})});}// ── Error ──────────────────────────────────────────────────────────────────\nif(status===\"error\"){return /*#__PURE__*/_jsx(\"div\",{style:wrap,children:/*#__PURE__*/_jsxs(\"div\",{style:card,children:[/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:isMobile?26:30,fontWeight:700,color:\"#fff\",letterSpacing:\"-0.025em\"},children:t(\"Error\",\"Error\")}),/*#__PURE__*/_jsx(\"p\",{style:{...base,fontSize:16,color:\"#555\",lineHeight:1.65},children:errorMsg}),/*#__PURE__*/_jsx(\"a\",{href:createNoteHref,style:linkBtn,children:t(\"Volver\",\"Back\")})]})});}// ── Attempts exhausted ─────────────────────────────────────────────────────\nif(status===\"attempts_exhausted\"){return /*#__PURE__*/_jsx(\"div\",{style:wrap,children:/*#__PURE__*/_jsxs(\"div\",{style:card,children:[/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...base,width:56,height:56,borderRadius:\"50%\",backgroundColor:\"rgba(255,80,80,0.06)\",border:\"1px solid rgba(255,80,80,0.15)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",margin:\"0 auto 20px\",fontSize:22,color:\"#cc4444\"},children:\"✕\"}),/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:isMobile?26:30,fontWeight:700,color:\"#fff\",letterSpacing:\"-0.025em\",lineHeight:1.2},children:t(\"Intentos agotados\",\"Attempts exhausted\")}),/*#__PURE__*/_jsxs(\"p\",{style:{...base,fontSize:16,color:\"#555\",lineHeight:1.65,marginTop:10},children:[t(\"Se usaron los 3 intentos sin la contrase\\xf1a correcta.\",\"All 3 attempts were used without the correct password.\"),/*#__PURE__*/_jsx(\"br\",{}),t(\"La nota fue destruida permanentemente.\",\"The note has been permanently destroyed.\"),/*#__PURE__*/_jsx(\"br\",{}),/*#__PURE__*/_jsx(\"br\",{}),t(\"Pide al remitente que genere un nuevo link.\",\"Ask the sender to generate a new link.\")]})]}),/*#__PURE__*/_jsx(\"a\",{href:createNoteHref,style:linkBtn,children:t(\"Crear nueva nota →\",\"Create new note →\")})]})});}// ── Password required ──────────────────────────────────────────────────────\nif(status===\"password_required\"||status===\"decrypting\"){const isLastAttempt=attemptsLeft===1;const dotColor=filled=>{if(!filled)return\"#222\";if(isLastAttempt)return\"#cc4444\";if(attemptsLeft===2)return\"#a07800\";return BLUE;};return /*#__PURE__*/_jsx(\"div\",{style:wrap,children:/*#__PURE__*/_jsxs(\"div\",{style:card,children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:12,fontWeight:600,letterSpacing:\"0.1em\",textTransform:\"uppercase\",color:BLUE,marginBottom:12},children:t(\"◈ Nota protegida\",\"◈ Protected note\")}),/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:isMobile?26:30,fontWeight:700,color:\"#fff\",letterSpacing:\"-0.025em\",lineHeight:1.2},children:t(\"Se requiere contrase\\xf1a\",\"Password required\")}),/*#__PURE__*/_jsx(\"p\",{style:{...base,fontSize:16,color:\"#555\",lineHeight:1.65,marginTop:10},children:t(\"Esta nota fue cifrada con una contrase\\xf1a adicional.\",\"This note was encrypted with an additional password.\")})]}),/*#__PURE__*/_jsx(\"div\",{style:divider}),/*#__PURE__*/_jsxs(\"div\",{style:{...base,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{...base,fontSize:13,color:isLastAttempt?\"#cc4444\":attemptsLeft===2?\"#a07800\":\"#555\"},children:[wrongPassword?t(\"Contrase\\xf1a incorrecta —\",\"Incorrect password —\"):\"\",\" \",attemptsLeft,\" \",attemptsLeft===1?t(\"intento restante\",\"attempt remaining\"):t(\"intentos restantes\",\"attempts remaining\")]}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:6},children:[0,1,2].map(i=>/*#__PURE__*/_jsx(\"div\",{style:{width:8,height:8,borderRadius:\"50%\",backgroundColor:dotColor(i<attemptsLeft),transition:\"background-color 0.2s\"}},i))})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"span\",{style:label,children:t(\"Contrase\\xf1a\",\"Password\")}),/*#__PURE__*/_jsx(\"input\",{type:\"password\",style:inputStyle,placeholder:t(\"Ingresa la contrase\\xf1a\",\"Enter the password\"),value:password,onChange:e=>setPassword(e.target.value),onKeyDown:e=>e.key===\"Enter\"&&handlePasswordSubmit(),autoFocus:true})]}),isLastAttempt&&/*#__PURE__*/_jsxs(\"div\",{style:{...base,display:\"flex\",alignItems:\"flex-start\",gap:10,padding:\"12px 14px\",backgroundColor:\"rgba(255,80,80,0.04)\",border:\"1px solid rgba(255,80,80,0.15)\",borderRadius:10,fontSize:13,color:\"#a04040\",lineHeight:1.55},children:[/*#__PURE__*/_jsx(\"span\",{style:{flexShrink:0},children:\"⚠\"}),/*#__PURE__*/_jsx(\"span\",{children:t(\"Este es el \\xfaltimo intento. Si la contrase\\xf1a es incorrecta, la nota se destruir\\xe1 permanentemente.\",\"This is the last attempt. If the password is incorrect, the note will be permanently destroyed.\")})]}),/*#__PURE__*/_jsx(\"button\",{style:btnPrimary,onClick:handlePasswordSubmit,disabled:!password.trim()||status===\"decrypting\",children:status===\"decrypting\"?t(\"Descifrando…\",\"Decrypting…\"):t(\"Descifrar nota →\",\"Decrypt note →\")})]})});}// ── Done ───────────────────────────────────────────────────────────────────\nreturn /*#__PURE__*/_jsx(\"div\",{style:wrap,children:/*#__PURE__*/_jsxs(\"div\",{style:card,children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{...base,display:\"inline-flex\",alignItems:\"center\",gap:7,padding:\"5px 12px\",backgroundColor:\"rgba(255,80,80,0.06)\",border:\"1px solid rgba(255,80,80,0.2)\",borderRadius:20,fontSize:12,fontWeight:600,color:\"#cc5555\",letterSpacing:\"0.04em\",marginBottom:16},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:6,height:6,borderRadius:\"50%\",backgroundColor:\"#cc5555\",display:\"inline-block\"}}),t(\"Nota destruida\",\"Note destroyed\")]}),/*#__PURE__*/_jsx(\"div\",{style:{...base,fontSize:isMobile?26:30,fontWeight:700,color:\"#fff\",letterSpacing:\"-0.025em\",lineHeight:1.2},children:t(\"Contenido descifrado\",\"Content decrypted\")}),/*#__PURE__*/_jsx(\"p\",{style:{...base,fontSize:16,color:\"#555\",lineHeight:1.65,marginTop:10},children:t(\"Esta nota fue eliminada del servidor al momento de la lectura.\",\"This note was deleted from the server at the moment it was read.\")})]}),/*#__PURE__*/_jsx(\"div\",{style:divider}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"span\",{style:label,children:t(\"Mensaje\",\"Message\")}),/*#__PURE__*/_jsx(\"div\",{style:{...base,backgroundColor:\"#080808\",border:\"1px solid #141414\",borderRadius:10,padding:isMobile?\"16px\":\"20px\",fontSize:16,color:\"#d8d8d8\",lineHeight:1.75,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",fontFamily:\"inherit\"},children:content})]}),/*#__PURE__*/_jsxs(\"div\",{style:{...base,display:\"flex\",alignItems:\"flex-start\",gap:10,padding:\"13px 15px\",backgroundColor:\"rgba(255,193,7,0.05)\",border:\"1px solid rgba(255,193,7,0.15)\",borderRadius:10,fontSize:14,color:\"#a07800\",lineHeight:1.55},children:[/*#__PURE__*/_jsx(\"span\",{style:{flexShrink:0,marginTop:1},children:\"⚠\"}),/*#__PURE__*/_jsx(\"span\",{children:t(\"Este contenido ya no existe en ning\\xfan servidor. Si lo necesitas, gu\\xe1rdalo ahora.\",\"This content no longer exists on any server. If you need it, save it now.\")})]}),/*#__PURE__*/_jsx(\"a\",{href:createNoteHref,style:linkBtn,children:t(\"Crear nueva nota\",\"Create new note\")})]})});}addPropertyControls(ReadNote,{workerUrl:{type:ControlType.String,title:\"Worker URL\",defaultValue:\"https://notes.tracewiseosint.com\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ReadNote\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ReadNote.map"],"mappings":"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"}