import React from 'react'; import type { DocumentDynamicGrain } from './smart/useDocumentDynamicEntities'; export interface DocumentDynamicEntitiesProps { /** Grano ya resuelto por `useDocumentDynamicEntities`. */ grain: DocumentDynamicGrain; /** * Id del registro dueño de los valores: el documento para el grano de * encabezado, la línea para el de línea. Ausente en creación — el formulario se * captura igual y los valores se persisten cuando el backend devuelve el id. */ recordId?: string; /** Título por defecto cuando el template no declaró `label`/`labelKey`. */ defaultTitleKey: string; /** El documento no es editable: el bloque se pinta pero no se puede capturar. */ readOnly?: boolean; /** * Presentación. `card` (por defecto) envuelve el bloque en la misma tarjeta que * usan las secciones del encabezado; `bare` lo entrega suelto, para un anfitrión * que ya aporta su propio marco — hoy, el modal de línea. */ variant?: 'card' | 'bare'; className?: string; } /** * Bloque de campos adicionales (EAV) de un grano del documento. * * Es el equivalente para `MasterDocument` de `MasterCrudDynamicEntities`, y * mantiene sus dos decisiones importantes: * * 1. **Los `EntityContainer` van sin su botón Guardar** (`hideSubmitButton`). El * documento tiene UNA acción de guardar; un segundo botón dentro del formulario * guardaría solo una parte y dejaría al usuario sin saber qué quedó grabado. * Quien persiste es el ciclo del documento, vía los refs registrados. * * 2. **Las pestañas ocultan, no desmontan.** Un `EntityContainer` desmontado * pierde sus valores y desregistra su ref, así que capturar en la pestaña A, * pasar a la B y guardar perdería A sin decir nada. Se pintan todas y se oculta * con `hidden` — a diferencia de las pestañas de detalle del documento, que sí * desmontan porque su grilla necesita medir el contenedor de scroll. * * ## El título lo pone SIEMPRE este componente * * `hideSubmitButton` viaja acompañado de `hideTitle` en todos los casos. El título * propio de `DynamicEntities` es un `h2 text-xl`, un peso tipográfico que en un * documento no se corresponde con nada: las secciones del encabezado se rotulan * con `text-sm font-bold`. Dejarlo salir metía un segundo nivel de titulación —y, * antes de este arreglo, una segunda tarjeta— dentro de la que ya aporta el bloque. * El nombre de cada entidad se rotula aquí, y solo cuando hay más de una: con una * sola, repetir "Datos adicionales" bajo "Campos adicionales" es ruido. */ export declare const DocumentDynamicEntities: React.FC; //# sourceMappingURL=DocumentDynamicEntities.d.ts.map