PDS proposals
26 component proposals for PDS v2 (15 net-new, 11 extending existing components). Each one has a live Storybook, its source, the decisions behind it, and what is custom.
Agentic Button
A separate component, `AgenticButton`, for an action the agent does:
Net-new componentStorybook (9 stories)
Agentic Menu Button
A separate component, `AgenticMenuButton`, for a menu of actions the agent does:
Net-new componentStorybook (4 stories)
Agentic Split Button
A separate component, `AgenticSplitButton`, a copy of the PDS v2 Split Button, so the engineer's port is mostly a copy:
Net-new componentStorybook (4 stories)
Badge
A copy of the PDS v2 Badge (pds-badge, same class names, props and CSS) with one addition: color='agentic-filled', the AI gradient as the fill, for denoting an agentic category.
Extends a PDS componentStorybook (2 stories)
Card Select
Add a shadow prop to the PDS Card Select.
Extends a PDS componentStorybook (4 stories)
Chain of Thought
A collapsible list.
Net-new componentStorybook (6 stories)
Chat Attachment
Net-new component: one attached item for chat.
Net-new componentStorybook (2 stories)
Chat Message
ChatMessage, with sender: user or agent.
Net-new componentStorybook (3 stories)
Chat Panel
A layout shell for the content of an AI chat drawer or docked side panel.
Net-new componentStorybook (4 stories)
Chat with an agent
A recipe, not a component: one interactive story that composes the existing proposals into a chat with an agent, from the empty state to a conversation.
Extends a PDS componentStorybook (1 stories)
Code diff
A recipe, not a component (decided 2026-10-21): a Panel List of changed files, with each row's file icon and name, an optional File Diff (counts and bar), and an expand button that reveals the diff in a Code Block.
Extends a PDS componentStorybook (2 stories)
Composer
A labelled textarea with a toolbar inside the same bordered box:
Net-new componentStorybook (7 stories)
Content Diff
A component, ContentDiff: the old value on a red line with a minus, the new value on a green line with a plus, in one bordered block, like a text diff.
Net-new componentStorybook (1 stories)
Dropzone
A net-new component, `Dropzone`:
Net-new componentStorybook (3 stories)
Event Log
Net-new, in two parts.
Net-new componentStorybook (5 stories)
Event log with agent
A recipe, not a component: a story and Usage page that compose existing proposals.
Extends a PDS componentStorybook (2 stories)
Feedback Bar
A small atomic component: a thumbs-up and thumbs-down pair with one piece of state, built from the local IconButton (its existing isPressed toggle, which maps to aria-pressed).
Net-new componentStorybook (2 stories)
Icon: agentic icons
Add the new sharp, solid sparkles glyph to the Icon set alongside zappy.
Extends a PDS componentStorybook (2 stories)
Icon Button
Starting point for an IconButton proposal.
Extends a PDS componentStorybook (6 stories)
LabeledDivider
Net-new LabeledDivider: a horizontal rule with a pill-shaped label centered on it.
Net-new componentStorybook (5 stories)
Logs table with divider
A recipe: the PDS Logs Table pattern (Table with hasPanel, status-colored rows and the inline detail panel) with a LabeledDivider as a row.
Extends a PDS componentStorybook (1 stories)
Regenerate a suggestion
A recipe, not a component: one interactive story that composes the Suggestion Card (single choice), the Button and the PDS Compact Pagination.
Extends a PDS componentStorybook (1 stories)
Select
An extension of the PDS Select: one new prop, variant, with bare next to default.
Extends a PDS componentStorybook (2 stories)
Spinner: agentic color variant
Extend the existing PDS v2 Spinner (not a new component).
Extends a PDS componentStorybook (5 stories)
SpinnerSequence
A new component, SpinnerSequence, that composes the existing PDS v2 Spinner and Illustration (the Spinner is not changed).
Net-new componentStorybook (5 stories)
Suggestion Card
A card for use inside an agent `ChatMessage`:
Net-new componentStorybook (7 stories)