/* global React, Icon, SOPAI, SOPStore */
/* Editor — left panel. Inputs that drive the doc state. */
const { useState: useStateE, useRef: useRefE, useCallback: useCallbackE } = React;
const { uid: uidE } = window.SOPStore;
/* ============ Small reusable bits ============ */
function Field({ label, hint, children }) {
return (
Editor del SOP
Rellena cada sección. El documento de la derecha se actualiza en vivo. ¿Tienes notas en bruto? Pega aquí abajo y pulsa Estructurar con IA.
{/* --- AI bar --- */}
} defaultOpen={true}>
{/* Thumbnails de las imágenes adjuntas */}
{aiImages.length > 0 && (
{aiImages.map(im => (
))}
)}
{ addAIImages(e.target.files); e.target.value = ""; }}
/>
{aiError ? {aiError} : "La IA reemplazará el contenido actual con la versión estructurada."}
{/* --- 0. Metadata --- */}
upd({ title: e.target.value })} placeholder="Ej: Subida de Plantillas de Email a GHL con IA" />
upd({ version: e.target.value })} placeholder="1.0" />
upd({ date: e.target.value })} />
{/* --- Intro / contexto --- */}
{(doc.flow || []).map((step, i) => (
{i + 1}.
updFlow(i, e.target.value)} placeholder={`Paso del flujo ${i + 1}…`} />
))}
{/* --- 2. Roles --- */}
{/* --- 3. Resources --- */}
{/* --- 4. Procedure --- */}
{(doc.phases || []).map(phase => (
Fase {phase.num}
updPhase(phase.id, { title: e.target.value })} placeholder="Título de la fase" />
{(phase.steps || []).map(step => (
))}
))}
{/* --- 5. Definitions --- */}
{/* --- 6. References --- */}
);
}
window.Editor = Editor;