import type { ReactNode } from 'react'; import type { LineTabConfig, LineTabHelpers } from './MasterDocument.types'; export interface LineTabsRegionProps { /** Pestañas ya resueltas, en el orden en que se dibujan. */ tabs: LineTabConfig[]; /** Pestaña activa. Si la clave no existe, cae a la primera. */ activeKey: string; onChange: (key: string) => void; /** * Contenido de la pestaña Tipo 1. Recibe `hideTitle` porque el título de la * grilla solo estorba cuando hay una barra que ya nombra la pestaña. */ renderLines: (opts: { hideTitle: boolean; }) => ReactNode; /** * Ayudantes del nivel presentacional para los contenidos Tipo 2 / Tipo 3. * Los aporta `MasterDocument`, que es quien tiene el estado del modal de línea. */ helpers: LineTabHelpers; className?: string; } /** * Región de detalle con pestañas: dibuja la barra y monta el contenido de la * pestaña activa. * * Dos decisiones que parecen detalles y no lo son: * * 1. **Una sola pestaña no dibuja barra.** Una pestaña sola no es navegación, y * el documento se ve idéntico a como se veía sin la capacidad. * 2. **Al cambiar de pestaña el contenido se DESMONTA**, no se oculta con * `display:none`. La grilla nativa virtualiza midiendo su contenedor de * scroll (`useVirtualizer`): oculta por CSS mide cero y al volver pinta cero * filas o alto cero. El precio es perder el scroll de la pestaña saliente; el * host que quiera conservarlo cachea el estado en su renderer. * * Renderiza un fragmento —no un contenedor propio— para que la barra y el panel * sigan siendo hijos directos de la columna del documento y conserven su * separación. El panel sí es un contenedor con la misma separación interna, * porque la pestaña de líneas apila varios bloques (menú de clases, aviso de * datos obsoletos, grilla). * * @see LineTabsBar — la barra * @see MasterDocument — decide qué pestañas existen y compone la de líneas */ export declare function LineTabsRegion({ tabs, activeKey, onChange, renderLines, helpers, className, }: LineTabsRegionProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=LineTabsRegion.d.ts.map