Skip to content

feat: Add Storybook component library with 46 presentational components#1156

Draft
cliffhall wants to merge 15 commits intov2/mainfrom
add-storybook
Draft

feat: Add Storybook component library with 46 presentational components#1156
cliffhall wants to merge 15 commits intov2/mainfrom
add-storybook

Conversation

@cliffhall
Copy link
Member

@cliffhall cliffhall commented Mar 17, 2026

Summary

  • Storybook component plan (specification/v2_ux_storybook.md) defining all components, props, stories, and build order
  • Mantine theme with component extensions, CSS custom properties (--inspector-* design tokens), and dark/light mode support
  • 46 presentational components built in isolation with Storybook stories, organized bottom-up:
    • 12 atoms: StatusIndicator, AnnotationBadge, CapabilityItem, LogEntry, ProgressDisplay, ContentViewer, ListChangedIndicator, CopyButton, ConnectionToggle, TransportBadge, InlineError, MessageBubble
    • 25 molecules: SchemaForm, ServerCard, AddServerMenu, ToolListItem, ToolDetailPanel, ResultPanel, ResourceListItem, ResourcePreviewPanel, ResourceTemplateInput, PromptArgumentsForm, PromptMessagesDisplay, LogControls, TaskCard, HistoryEntry, ServerInfoContent, ServerSettingsForm, RootsTable, SamplingRequestPanel, ElicitationFormPanel, ElicitationUrlPanel, InlineSamplingRequest, InlineElicitationRequest, PendingClientRequests, ImportServerJsonPanel, ExperimentalFeaturesPanel
    • 7 organisms: ServerListScreen, ToolsScreen, ResourcesScreen, PromptsScreen, LoggingScreen, TasksScreen, HistoryScreen
    • 2 layouts: HomeLayout (disconnected state), ConnectedLayout (with tab navigation)

All components follow the presentational/container pattern — they receive data and callbacks via props with no store access, making them testable in Storybook isolation.

Example Storybook Screenshots

Desktop

Screenshot 2026-03-17 at 6 03 29 PM

Tablet

Screenshot 2026-03-17 at 6 00 55 PM

Large Mobile

Screenshot 2026-03-17 at 6 02 03 PM

Outline

Screenshot 2026-03-17 at 6 04 03 PM

Measure

Screenshot 2026-03-17 at 6 05 19 PM

Test plan

  • Run npm run build succeeds
  • Run npm run lint succeeds
  • Run npm run format:check succeeds
  • Run npm run storybook:build succeeds
  • Run npm run storybook and visually verify components in light/dark mode
  • Verify all story variations render correctly

🤖 Generated with Claude Code

cliffhall and others added 9 commits March 10, 2026 10:22
* Broke v2_tech_stack.md into v2_web_client.md, v2_server.md, and v2_storage.md
* Added v2 components with information on the presenttional components pattern.
Defines all presentational components to be built in Storybook with Mantine,
organized bottom-up (atoms, molecules, organisms, layouts) with props interfaces,
Mantine implementation notes, story variations, build order, and configuration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Added storybook build plan
…ts with Storybook stories

- Mantine theme with component extensions (Badge, Card, Paper, Button, etc.)
- CSS custom properties for design tokens (--inspector-* vars)
- Dark/light mode support with auto detection
- 12 atoms: StatusIndicator, AnnotationBadge, CapabilityItem, LogEntry,
  ProgressDisplay, ContentViewer, ListChangedIndicator, CopyButton,
  ConnectionToggle, TransportBadge, InlineError, MessageBubble
- 25 molecules: ServerCard, AddServerMenu, SchemaForm, ToolListItem,
  ToolDetailPanel, ResultPanel, ResourceListItem, ResourcePreviewPanel,
  ResourceTemplateInput, PromptArgumentsForm, PromptMessagesDisplay,
  LogControls, TaskCard, HistoryEntry, ServerInfoContent, ServerSettingsForm,
  RootsTable, SamplingRequestPanel, ElicitationFormPanel, ElicitationUrlPanel,
  InlineSamplingRequest, InlineElicitationRequest, PendingClientRequests,
  ImportServerJsonPanel, ExperimentalFeaturesPanel
- Exclude storybook-static from version control
- Exclude .stories.tsx from app tsconfig (Storybook-only modules)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ServerListScreen: Home page with server card grid and add server menu
- ToolsScreen: Three-panel layout (tool list, detail/form, results)
- ResourcesScreen: Two-panel with accordion sections and content preview
- PromptsScreen: Two-panel with prompt selection and message display
- LoggingScreen: Two-panel with log controls and real-time log stream
- TasksScreen: Active and completed task card sections
- HistoryScreen: Request history with search, filter, and pinned entries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ories

- HomeLayout: AppShell with header (title + theme toggle) for disconnected state
- ConnectedLayout: AppShell with server name, status indicator, tab navigation,
  theme toggle, and disconnect button for connected state

All 6 phases of the Storybook component plan are now complete:
12 atoms, 25 molecules, 7 organisms, 2 layouts = 46 components total

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace placeholder Paper elements with actual ServerListScreen organism
containing properly configured ServerCard components.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cliffhall cliffhall changed the base branch from main to v2/main March 17, 2026 20:18
@cliffhall cliffhall marked this pull request as draft March 17, 2026 21:32
@cliffhall cliffhall added the v2 Issues and PRs for v2 label Mar 17, 2026
@cliffhall cliffhall self-assigned this Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v2 Issues and PRs for v2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants