Storybook stories file for `MingoInfoCard`, a horizontal info-row card component used in chat interfaces. Covers Figma-spec variants and optional-element permutations.
## Key Components
**Exported Stories**
| Story | Description |
|---|---|
| `WithImage` | Card with a 40px avatar image as the leading media element |
| `WithIcon` | Card with a boxed glyph (`MonitorIcon`) as the leading media element |
| `WithoutStatus` | Icon variant with the status pill omitted |
| `WithoutDescription` | Image variant with the description line omitted |
| `WithoutMenu` | Card with the trailing overflow menu omitted |
| `Clickable` | Full card with an `onClick` handler wired to the entire row |
| `StatusVariants` | Side-by-side showcase of all four `Tag` palette variants: `success`, `warning`, `error`, `grey` |
| `LongContentTruncates` | Validates text truncation on overflow for both title and description |
**Supporting Fixtures**
- `AVATAR_SRC` — Pravatar placeholder image URL used across image-based stories
- `SAMPLE_MENU` — Two-item menu group (`Copy link`, `Remove`) reused across stories
## Usage Example
```typescript
import { MingoInfoCard } from '../components/chat/mingo-info-card'
import { MonitorIcon } from '../components/icons-v2-generated/devices/monitor-icon'
// Basic card with icon and status
}
status={{ label: 'Online', variant: 'success' }}
menuGroups={[{
items: [
{ id: 'copy', label: 'Copy link', icon: , onClick: () => {} },
{ id: 'remove', label: 'Remove', icon: , danger: true, onClick: () => {} },
],
}]}
onClick={() => console.log('card clicked')}
/>
```
> **Layout note:** `MingoInfoCard` is `w-full` and must be placed inside a block-level container. The Storybook canvas uses `layout: 'fullscreen'` rather than `centered` to allow the card to reflow correctly when the viewport is resized.
## Source
[`MingoInfoCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/MingoInfoCard.stories.tsx)