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.",
},
};