import React from "react"; import type { DataTableColumn } from "../../components/layout/DataTable"; /** * Template de Patrón de Lista con Filtros y Paginación * * Estructura típica para páginas de listado: Card con título, botón de agregar, * fila de búsqueda/filtros/paginación y DataTable. * * Ejemplo de uso: * ```tsx * import { ListPattern } from "flysoft-react-ui"; * * const columns = [ * { header: "Nombre", value: "name" }, * { header: "Email", value: "email" }, * ]; * * setShowDialog(true)} * page={1} * pages={5} * total={50} * /> * ``` */ export interface ListPatternProps { /** Título de la card */ title: string; /** Subtítulo opcional */ subtitle?: string; /** Columnas de la DataTable */ columns: DataTableColumn[]; /** Filas de datos */ rows: T[]; /** Texto del botón de agregar. Si no se pasa, no se muestra el botón */ addButtonText?: string; /** Icono del botón de agregar */ addButtonIcon?: string; /** Callback al presionar el botón de agregar */ onAdd?: () => void; /** Nombre del query parameter para el buscador. Si no se pasa, no se muestra el buscador */ searchParamName?: string; /** Label del buscador */ searchLabel?: string; /** Nodo adicional para agregar filtros extra junto al buscador */ filtersNode?: React.ReactNode; /** Página actual (para el paginador) */ page?: number; /** Total de páginas */ pages?: number; /** Total de elementos */ total?: number; /** Nombre del query parameter para la página */ pageParamName?: string; /** Indica si los datos están cargando */ isLoading?: boolean; /** Cantidad de filas skeleton mientras carga */ loadingRows?: number; /** Máximo de filas visibles antes de activar scroll */ maxRows?: number; /** Modo compacto: reduce paddings y usa size="sm" en componentes internos */ compact?: boolean; /** Clases CSS adicionales para la Card */ className?: string; /** Nodo adicional en el header junto al botón de agregar */ headerActionsNode?: React.ReactNode; /** Locale para formateo de números en la DataTable */ locale?: string; /** Función para aplicar clases CSS a una fila */ rowClassName?: (row: T) => string; } export declare const ListPattern: ({ title, subtitle, columns, rows, addButtonText, addButtonIcon, onAdd, searchParamName, searchLabel, filtersNode, page, pages, total, pageParamName, isLoading, loadingRows, maxRows, compact, className, headerActionsNode, locale, rowClassName, }: ListPatternProps) => import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=ListPattern.d.ts.map