import type { Meta, StoryObj } from '@storybook/nextjs-vite'; import type React from 'react'; import { ErrorMessageDisplay } from '../components/chat/error-message-display'; /** * Inline error card for `error` message segments — mono uppercase title * with an alert icon; optional details expand under the chevron. * `type` tints the icon: error (red) / warning (yellow) / info (grey). */ const plainDecorator = (Story: React.ComponentType) => (
); const meta = { title: 'Chat/ErrorMessageDisplay', component: ErrorMessageDisplay, tags: ['autodocs'], parameters: { docs: { description: { component: 'Renders an `error` message segment — collapsed mono title row, expandable details. Icon tint follows type: error / warning / info.', }, }, }, decorators: [plainDecorator], } satisfies Meta; export default meta; type Story = StoryObj; /** Error with expandable details. */ export const WithDetails: Story = { args: { title: 'Tool execution failed', details: 'run_script exited with code 1: brew not found on this endpoint. Install Homebrew first or use the direct .dmg fallback.', }, }; /** Title only — no chevron, row is not clickable. */ export const TitleOnly: Story = { args: { title: 'Stream disconnected — retrying' }, }; /** Warning tint. */ export const Warning: Story = { args: { type: 'warning', title: 'Approval expired', details: 'The approval request timed out after 15 minutes and was cancelled automatically.', }, }; /** Info tint. */ export const Info: Story = { args: { type: 'info', title: 'Session resumed', details: 'Reconnected to the stream; missed chunks were replayed from history.', }, };