import type { ReactNode } from 'react'; /** * Resultado de una coincidencia encontrada */ export interface MatchResult { /** Identificador único del registro coincidente */ id: string | number; /** Nombre o descripción principal del registro */ name: string; /** Otros datos adicionales que puedan ser necesarios */ [key: string]: any; } /** * Propiedades del componente MatchModal */ export interface MatchModalProps { /** Si el modal está abierto */ isOpen: boolean; /** * Callback de cierre. * * ⚠️ El modal no lo invoca: por decisión de diseño no ofrece control de cierre * —no hay botón X, ni `Escape`, ni clic en el fondo— y la única salida es * `onContinue`. La prop se mantiene en el contrato para no romper a los * consumidores que ya la pasan; si tu flujo necesita cancelar, ciérralo desde * el consumidor. */ onClose: () => void; /** Lista de coincidencias encontradas */ matches: MatchResult[]; /** * Nombre del campo donde se encontró la coincidencia (ej: "Nombre", "Código"). * * Opcional: solo alimenta el título por defecto. Si no llega, el modal muestra * un encabezado genérico y el resto —coincidencias y acciones— sigue * funcionando igual. Antes su ausencia lanzaba un `TypeError` en render que * tumbaba la vista completa del consumidor. */ fieldName?: string; /** Callback al hacer clic en "Ver" una coincidencia específica */ onView: (match: MatchResult) => void; /** Callback al hacer clic en "Continuar creando" */ onContinue: () => void; /** * Título personalizado del modal (opcional). * * Gana sobre el título traducido. Una cadena vacía se trata como ausente: se * usa el título por defecto en lugar de dejar el encabezado en blanco. */ title?: ReactNode; /** * Texto del botón "Ver" de cada coincidencia (opcional). * * Gana sobre la traducción (`match_modal.view`). Pensado para consumidores que * ya resuelven sus cadenas por fuera del motor del kit. Una cadena vacía se * trata como ausente. * * @default 'Ver' — o su traducción en el idioma activo */ viewLabel?: ReactNode; /** * Texto del botón de acción principal (opcional). * * Gana sobre la traducción (`match_modal.continue`). Una cadena vacía se trata * como ausente. * * @default 'Continuar creando' — o su traducción en el idioma activo */ continueLabel?: ReactNode; /** Clases CSS adicionales para el contenedor */ className?: string; } //# sourceMappingURL=MatchModal.types.d.ts.map