inspector/clients/web/src/components/molecules/ResourcePreviewPanel/ResourcePreviewPanel.stories.tsx
cliffhall 1da76c53ef storybook component fixes and improvements
- Add @storybook/addon-actions for action logging in stories
- Add onTestCapability callback to ExperimentalFeaturesPanel
- Use CopyButton overlay in ResourcePreviewPanel and ResultPanel
- Replace includeContext checkbox with badge in SamplingRequestPanel
- Add LongServerName story for ServerCard
- Fix long tool name overflow with truncation and contained Paper variant
- Add optional title prop to ToolListItem and ToolDetailPanel
- Move tool annotations from list to detail panel form
- Vertically center static text in ResourceTemplateInput
- Fix InlineError blank space when no details

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:04:28 -04:00

72 lines
1.7 KiB
TypeScript

import type { Meta, StoryObj } from "@storybook/react-vite";
import { fn } from "storybook/test";
import { ResourcePreviewPanel } from "./ResourcePreviewPanel";
const meta: Meta<typeof ResourcePreviewPanel> = {
title: "Molecules/ResourcePreviewPanel",
component: ResourcePreviewPanel,
args: {
onSubscribe: fn(),
onUnsubscribe: fn(),
},
};
export default meta;
type Story = StoryObj<typeof ResourcePreviewPanel>;
export const JsonResource: Story = {
args: {
uri: "file:///config.json",
mimeType: "application/json",
content: JSON.stringify(
{ name: "mcp-inspector", version: "2.0.0", debug: true },
null,
2,
),
isSubscribed: false,
lastUpdated: "2026-03-17T10:30:00Z",
},
};
export const TextResource: Story = {
args: {
uri: "file:///readme.txt",
mimeType: "text/plain",
content:
"This is a plain text resource with some example content.\nLine two of the content.",
isSubscribed: false,
},
};
export const Subscribed: Story = {
args: {
uri: "file:///data.json",
mimeType: "application/json",
content: JSON.stringify({ status: "active" }, null, 2),
isSubscribed: true,
lastUpdated: "2026-03-17T12:00:00Z",
},
};
export const NotSubscribed: Story = {
args: {
uri: "file:///data.json",
mimeType: "application/json",
content: JSON.stringify({ status: "active" }, null, 2),
isSubscribed: false,
},
};
export const WithAnnotations: Story = {
args: {
uri: "file:///settings.json",
mimeType: "application/json",
content: JSON.stringify({ theme: "dark", lang: "en" }, null, 2),
isSubscribed: false,
annotations: {
audience: "application",
priority: 0.8,
},
lastUpdated: "2026-03-17T09:00:00Z",
},
};