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)