Renders an MSP (Managed Service Provider) identity display combining a square avatar logo with the MSP's name in a flex layout. ## Key Components ### `MSPDisplay` A client-side React component that displays an MSP's branding with a fallback-aware avatar and truncated name label. **Props (`MSPDisplayProps`):** | Prop | Type | Default | Description | |---|---|---|---| | `name` | `string` | — | MSP display name (used as avatar fallback and `alt` text) | | `logoUrl` | `string \| null` | `undefined` | Optional logo URL, run through the image proxy | | `size` | `number` | `40` | Avatar dimensions in pixels (square) | | `className` | `string` | — | Additional CSS classes for the wrapper | **Internal dependencies:** - [`SquareAvatar`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/ui/square-avatar.tsx) — renders the square avatar with fallback initials - [`getProxiedImageUrl`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/utils/image-proxy.ts) — proxies external logo URLs to avoid CORS/mixed-content issues - [`cn`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/utils/cn.ts) — utility for conditional class merging ## Usage Example ```typescript import { MSPDisplay } from '@flamingo-stack/openframe-oss-lib'; // With a logo // Name-only fallback (renders initials avatar) ``` > **Note:** If `logoUrl` is provided but `getProxiedImageUrl` returns `null` or an empty string, the component falls back to the original `logoUrl` directly. If no URL is available at all, `SquareAvatar` renders initials derived from `name`.