import { CatalogCardProps } from '../../types'; /** * **CatalogCard** — tarjeta de catálogo / proveedor / usuario (API **cerrada** por props) alineada al archivo Figma * [Cards](https://www.figma.com/design/3w0SWvV7C5tDKUybsOcgA4/Cards). * * Implementación partida en {@link CatalogCatalogCard}, {@link CatalogSupplierCard} y paneles de menú * (`catalogCardMenuPanels`) para mantener archivos acotados. * * No expone slots `media` / `details` / `cta` con ReactNode arbitrario: el organismo compone `Picture`, * `Icon`, `Tooltip`, `Button`, `Badge`, `Picture`, `Popup` y `List` según props. El menú **…** es lista de acciones * ({@link CatalogCardMenuItem}); los checkboxes de `tags` van en el panel del **CTA principal** (`onPrimaryTagsSelectionChange`). * Familia **`user`**: mismo layout que proveedor (~270px), **sin** rating; opcional **`profile.avatarImageSrc`** (o plano * `avatarImageSrc`) para foto en el avatar en lugar de iniciales. * * **Catálogo `layout="horizontal"`:** fila sin wrap, imagen izquierda a toda la altura; textos y debajo **⋯** + CTA ícono; enlace de tarjeta solo en textos. * **`layout="stacked"`:** ancho fluido; cabecera con miniatura (**1/3** del ancho en ratio **16:9**), calificación centrada y primera `tag`; cuerpo con categoría, título y ubicación; pie con fila de `tags` y **⋯** + CTA ícono; enlace solo en el cuerpo. * **`layout="compact"`:** ancho fluido; cabecera en fila (miniatura **1/3** del ancho en **16:9**, calificación + primera `tag` debajo, solo CTA ícono arriba a la derecha; **sin** menú **⋯**); debajo categoría, título y ubicación; tags adicionales bajo el bloque enlazado si hay más de una `tag`. * Por defecto **`vertical`** (~250px, media arriba); **`fullWidth`** quita el tope de ancho en vertical. * * `selected` no altera el estilo del contenedor (solo `data-selected`); el relieve viene del hover y de `emphasized`. * Con `optionsMenu: { hidden: true }` no se muestra el **⋯**; solo el CTA del pie. Con **`primaryCta: { hidden: true }`** o **`footer: { showPrimaryCta: false }`** no se muestra el CTA principal del pie (ni el ícono horizontal en otros layouts); la interacción puede ser solo **`onClick`** en la raíz o enlaces en el cuerpo. Con **`media.hideImage`** y sin `hidden` explícito, el **⋯** también queda oculto por defecto (`hidden: false` para mostrarlo). * * Las props opcionales pueden **omitirse** (no hace falta pasar `undefined`/`null`); los bloques de UI asociados no se * renderizan si falta el dato o el texto está vacío (p. ej. `categoryLabel`, `locationLabel`, `ratingValue`, `statusLabel`, * `phone`, `email` en proveedor). En catálogo, el bloque media (~141px) se monta por defecto; sin `imageSrc`, `Picture` * muestra su placeholder salvo que **`media.hideImage`** sea `true` (solo texto, sin imagen ni overlays de media). Con `disabled`, sin hover de tarjeta ni enlace en la zona principal; en catálogo * `Picture` y CTAs desactivados (Figma Cards — capa terciaria + luminosity); en proveedor `Avatar`, badge de estado e * iconos de contacto en estilo deshabilitado y CTA desactivado. El menú **⋯** (opciones) sigue activo para flujos como reactivación externa; * opcionalmente `onClick` en la raíz también puede pasarse con `disabled` (p. ej. abrir detalle) sin `href`/`to`. * Props compartidas `to` / `href` (`to` prioriza) enlazan la zona principal como ``; el pie con CTA y **⋯** queda fuera * para evitar `` anidando botones. * * @example * ```tsx * {} }, * { type: 'separator' }, * { label: 'Eliminar', color: 'red', onSelect: () => {} }, * ], * }} * primaryCta={{ onPrimaryClick: () => {} }} * /> * ``` */ export declare const CatalogCard: import('react').ForwardRefExoticComponent>; //# sourceMappingURL=CatalogCard.d.ts.map