Files
PaperClipAI/ui
DottaandPaperclip d28508fbe3 feat(ui): Action approval card v2 — stale variant + bindings + signed payload + mobile (PAP-10787)
New ui/src/components/actions/ActionCard.tsx implementing the issue-thread
approval card per the PAP-10771 v2 spec (surfaces 11/12/99):

- Real Card: avatar + "Coder requested approval to call" header + outcome pill;
  body with tool name + risk/capability pills; bindings table (application +
  manifest version, connection, catalog sha256, signed payload sha256); JSON
  input mono block; "Why I'm asking" referencing the policy by number; footrow
  with expiry icon + Edit & re-sign / Deny / Approve.
- Stale variant (PAP-10400 hardening): amber border, catalog-hash-mismatch
  banner, previous catalog hash struck through next to the current one, and
  Approve rendered disabled until re-issuance.
- Mobile (390×844) via ActionCardMobile: identical content, full-width buttons
  stacked Approve / Deny / Edit & re-sign, 70px bindings label column.
- New exported BindingsTable (two-column mono key/value) lives inside the card
  and is reusable in the audit row drilldown.

Showcased in the design guide and a Storybook story; unit tests cover the
PAP-10400 security states (signed payload + expiry always shown, stale Approve
disabled, struck-through prior hash) and the mobile button order. Typecheck and
the new component tests pass.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-10 12:49:31 +00:00
..

@paperclipai/ui

Published static assets for the Paperclip board UI.

What gets published

The npm package contains the production build under dist/. It does not ship the UI source tree or workspace-only dependencies.

Storybook

Storybook config, stories, and fixtures live under ui/storybook/.

pnpm --filter @paperclipai/ui storybook
pnpm --filter @paperclipai/ui build-storybook

Typical use

Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.