Renders an entity avatar that displays either an authenticated image or an initials-based fallback when the image is unavailable or fails to load.
## Key Components
### `EntityImage`
A client-side React component that handles image loading with graceful degradation.
**Props (`EntityImageProps`):**
| Prop | Type | Description |
|---|---|---|
| `src` | `string \| null` | Image URL (resolved through auth hook) |
| `alt` | `string` | Alt text; also used as initials source |
| `fallbackText` | `string` | Overrides `alt` as the initials source |
| `className` | `string` | Additional CSS classes |
**Behavior:**
- Resolves authenticated image URLs via `useAuthedImageSrc`
- Resets error state when the resolved source changes
- Shows an initials badge (via `getFirstLastInitials`) when the image fails or is absent
- Falls back to `"?"` when no initials can be derived
- Responsive sizing: `52px` on mobile, `60px` on `md+` breakpoints
## Usage Example
```typescript
// Basic usage with an image URL
// With a custom fallback text for initials
// Initials-only (no src provided) — renders "JD"
```
## Notes
- Requires the `useAuthedImageSrc` hook to inject auth headers/tokens into image requests
- Initials are derived using `getFirstLastInitials`, which extracts first and last name initials from the provided text
- Images use `object-contain` to preserve aspect ratio within the fixed square bounds