function RealConstructionEditor({config, answers, onChange, legacyText,targets=[],assignments={},endingLabel='Description',readonly=false}) { const [active,setActive]=React.useState(null); const [page,setPage]=React.useState(0); const api=window.RealConstruction; const rows=api.rows(config); const done=rows.filter(row=>api.fields.every(field=>String(answers[row.id]?.[field]||'').trim()) && (row.kind!=='negative' || answers[row.id]?.not!==false)).length; const names={objective:'Objective',indicator:'Indicator',description:endingLabel,not:'NOT'}; const hints={objective:'¿De quién o de qué hablas?',indicator:'Escribe el indicator de esta estructura.',description:endingLabel==='Activity'?'Escribe la actividad y su complemento.':'¿Cómo es? Escribe su descripción.'}; return
Todos BilingüesTIERRA → ESPACIO · CANAL ABIERTO

Te escuchamos, terrícola.

No conocemos tu mundo. Usa las figuras para contarnos cómo es, una idea a la vez.

{done} / {rows.length}mensajes completos
{legacyText &&
Ver tu respuesta anterior

Tu texto anterior se conserva hasta que guardes las nuevas construcciones.

{legacyText}
}

{page {Object.keys(config).filter(kind=>kind===rows[page]?.kind).map(kind=>

{api.labels[kind]}

{config[kind].count+(config[kind].makerRows?.length||0)} ejemplos{kind==='negative'?' · Toca NOT para activarlo o quitarlo':''}
{rows.filter((row,index)=>index===page).map(row=>{ const asset=window.REAL_CONSTRUCTION_CONFIG.images[row.image]; const layout=window.REAL_CONSTRUCTION_CONFIG.layouts[asset.layout]; const values=answers[row.id]||{}; const target=assignments[row.id] || targets[row.index % Math.max(1,targets.length)]; const filled=api.fields.filter(field=>String(values[field]||'').trim()).length; const selected=active?.id===row.id?active.field:null; const select=field=>{if(readonly)return;field==='not' ? onChange({...answers,[row.id]:{...values,not:values.not===false}}) : setActive({id:row.id,field});}; const ready=filled===3 && (kind!=='negative' || values.not!==false); return
EJEMPLO {String(row.index+1).padStart(2,'0')}{ready?'✓ Completo':kind==='negative' && values.not===false?'Activa NOT':`${filled} / 3`}
{target&&
MENSAJE RECIBIDO · LOS ALIENS QUIEREN SABER

{target.id==='self'?'Un ejemplo sobre ti':target.id==='aliens'?'Una pregunta para nosotros':`Un ejemplo sobre ${target.displayName}`}

{target.prompt}

} {row.makerExercise?.media&&{row.makerExercise.title}}
{layout.zones.map(zone=>)}
{layout.zones.map(zone=>)}
{selected &&
onChange({...answers,[row.id]:{...values,[selected]:e.target.value}})} onKeyDown={e=>{if(e.key==='Enter'){e.preventDefault();const order=layout.zones.filter(z=>z.field!=='not').map(z=>z.field);const next=order[order.indexOf(selected)+1];setActive(next?{id:row.id,field:next}:null);}if(e.key==='Escape')setActive(null);}} />
}
{selected && }
{filled>0 &&
TU CONSTRUCCIÓN

{api.sentence(kind,values)}

}
Ejemplo {page+1} de {rows.length}
; })}
)}

Completa los tres elementos de cada ejemplo y activa NOT en los negativos para guardar y continuar.

; }