Storybook stories for the `CampaignCardAdmin` chat-inline entity card, covering default display and edge cases where optional fields (description, goals) are absent.
## Key Components
| Export | Type | Description |
|---|---|---|
| `Default` | `Story` | Full campaign card with name, start date, goal count, and description |
| `NoDescription` | `Story` | Campaign card with `description` set to `null` |
| `NoGoals` | `Story` | Campaign card with an empty `goals` array |
## Usage Example
```typescript
import { CampaignCardAdmin } from '../components/chat/entity-cards'
import { campaignItem } from './__fixtures__/chat-cards'
import { makeAnchorProps } from './__fixtures__/chat-card-decorator'
// Render the card in your chat UI
// Handle missing optional fields gracefully
```
## Notes
- Wrapped in `ChatColumnDecorator` to simulate the constrained chat column layout.
- This is the **chat-only projection** of the `marketing_campaign` doc type — delete/manage actions belong to the hub's full admin card.
- Stories live under the `Chat/EntityCards/CampaignCardAdmin` Storybook path.
**Source:** [`CampaignCardAdmin.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/CampaignCardAdmin.stories.tsx)