cli

Component Catalog

Reference for all available UI components in the Shep AI web interface.

Tier 0: UI Primitives (components/ui/)

shadcn/ui primitives managed by the shadcn CLI. Most have colocated .stories.tsx files.

Component File Description
Accordion accordion.tsx Collapsible content sections
AlertDialog alert-dialog.tsx Confirmation dialogs for destructive actions
Alert alert.tsx Feedback messages with semantic variants (default, destructive)
Badge badge.tsx Status indicators (default, secondary, outline, destructive)
Button button.tsx Action buttons (default, destructive, outline, ghost, link + sizes)
Card card.tsx Container with header, content, footer sections
CheckboxGroup checkbox-group.tsx Grouped checkbox inputs
CheckboxGroupItem checkbox-group-item.tsx Individual item within checkbox group
Checkbox checkbox.tsx Single checkbox input
CometSpinner comet-spinner.tsx Animated comet-style loading spinner
Command command.tsx Command palette / combobox primitive
Dialog dialog.tsx Modal dialogs for focused interactions
Drawer drawer.tsx Slide-out drawer panel
DropdownMenu dropdown-menu.tsx Dropdown menu with items
Input input.tsx Text input fields
Label label.tsx Accessible form field labels
Popover popover.tsx Floating content panels
ScrollArea scroll-area.tsx Custom scrollable container
Select select.tsx Dropdown selection
Separator separator.tsx Visual divider
Sheet sheet.tsx Side sheet overlay
Sidebar sidebar.tsx Sidebar primitive (shadcn sidebar component)
Skeleton skeleton.tsx Loading placeholder skeleton
Sonner sonner.tsx Toast notifications (via sonner library)
Spinner spinner.tsx Loading spinner
Switch switch.tsx Toggle switch
Tabs tabs.tsx Tabbed content navigation
Textarea textarea.tsx Multi-line text input
Tooltip tooltip.tsx Hover tooltip

Usage

// Import directly from the component file
import { Button } from '@/components/ui/button';
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card';

Adding New Primitives

pnpm dlx shadcn@latest add [component-name]

Tier 1: Common Components (components/common/)

Cross-feature composed components built from ui/ primitives. Each lives in its own subfolder with colocated stories and index.ts barrel export.

ActionButton

Styled action button with icon support.

AddRepositoryButton

Button to add a new repository to the workspace.

AttachmentCard

Card display for file attachments.

AttachmentChip

Compact chip display for inline attachment references.

BaseDrawer

Base drawer component used as foundation for all drawer variants.

CiStatusBadge

Badge showing CI/CD pipeline status.

ControlCenterDrawer

Orchestrator for drawer views (feature, repository, create).

DeleteFeatureDialog

Confirmation dialog for feature deletion.

DeploymentStatusBadge

Badge showing deployment status.

DrawerActionBar

Action bar within drawers (approve, reject, etc.).

DrawerRevisionInput

Input for revision/feedback text within drawers.

EditorTypeIcons

Icon mappings for different editor/IDE types.

ElapsedTime

Live-updating elapsed time display.

EmptyState

Placeholder for pages or sections with no content.

FeatureCreateDrawer

Drawer form for creating new features with attachments.

FeatureDrawer

Feature detail drawer with tabbed content.

FeatureDrawerTabs

Tab navigation for the feature drawer (overview, activity, approval, rejection, pr-info, deployment, timeline).

FeatureListItem

Sidebar list item representing a feature with status and elapsed time.

FeatureNode

React Flow canvas node representing a feature with state-driven styling.

FeatureStatusBadges

Status badge components for feature lifecycle states.

FeatureStatusConfig

Configuration mapping feature states to colors and labels.

FeatureStatusGroup

Grouped list of features by status in the sidebar.

InlineAttachments

Inline display of attachment list.

LoadingSkeleton

Content placeholder shown during loading states.

MergeReview

Merge review UI components.

OpenActionMenu

Menu for opening items in IDE, shell, or browser.

Consistent page header with title, optional description, and action slot.

PrdQuestionnaire

PRD (Product Requirements Document) questionnaire form.

ProductDecisionsSummary

Summary display for product decisions.

RejectFeedbackDialog

Dialog for providing rejection feedback.

RepositoryNode

React Flow canvas node representing a repository.

ServerLogViewer

Log viewer component for server/agent logs.

Shep branding logo component.

SidebarCollapseToggle

Toggle button for collapsing/expanding the sidebar.

SidebarNavItem

Navigation item for the sidebar menu.

SidebarSectionHeader

Section header within the sidebar.

SoundToggle

Toggle for enabling/disabling UI notification sounds.

TaskProgressView

Progress view for task/agent execution steps.

TechDecisionsReview

Review UI for technical decisions.

ThemeToggle

Toggle between light, dark, and system theme modes.

VersionBadge

Badge displaying the current version.

Tier 2: Layout Components (components/layouts/)

Page shells and structural wrappers. Each in its own subfolder with stories and barrel export.

AppShell

Top-level application wrapper integrating sidebar and main content area.

AppSidebar

Application sidebar with feature list, navigation, and status groups.

DashboardLayout

Full-page shell combining sidebar and content area with React Flow canvas.

Top navigation bar.

Base sidebar layout component.

Tier 3: Feature Components (components/features/)

Domain-specific UI components organized by bounded context.

control-center/

Main control center orchestrating the dashboard view.

features-canvas/

React Flow canvas for visualizing features and repositories.

settings/

Settings page sections.

skills/

Skills page components.

tools/

Tools page components.

version/

Storybook

View all components with interactive examples:

pnpm dev:storybook

Opens at http://localhost:6006 with: