import type { Meta, StoryObj } from '@storybook/nextjs-vite'; import { DataRoomDocCard } from '../components/chat/entity-cards'; import { ChatColumnDecorator, makeAnchorProps } from './__fixtures__/chat-card-decorator'; import { dataRoomDocItem, openframeDocsMarkdownItem } from './__fixtures__/chat-cards'; const meta: Meta = { title: 'Chat/EntityCards/DataRoomDocCard', component: DataRoomDocCard, parameters: { layout: 'fullscreen', docs: { description: { component: 'Inline card rendered in chat for `data_room_doc` and `markdown` doc types. The same component covers both — `sourceRepo` drives the badge label (e.g. "Data room" vs "OpenFrame Docs"). `badgeText` is a REQUIRED prop; the dispatch resolves it via `SOURCE_LABELS_BY_TABLE` before rendering.', }, }, }, decorators: [ Story => ( ), ], }; export default meta; type Story = StoryObj; export const DataRoom: Story = { args: { item: dataRoomDocItem, badgeText: 'Data room', anchorProps: makeAnchorProps(dataRoomDocItem.url ?? '#'), }, }; export const KnowledgeBaseMarkdown: Story = { args: { item: openframeDocsMarkdownItem, badgeText: 'OpenFrame Docs', anchorProps: makeAnchorProps(openframeDocsMarkdownItem.url ?? '#'), }, parameters: { docs: { description: { story: 'Same component, `markdown` doc type — drives the "OpenFrame Docs" badge via `sourceRepo: "openframe-docs"`.', }, }, }, };