Files
PaperClipAI/ui
Dotta ea1291dc1f Merge remote-tracking branch 'origin/master' into codex/dismiss-composer-requests
* origin/master:
  feat: track git workspace restore points and apply their retention (#17241)
  feat(ui): Artifacts V1 behind an experimental setting — Artifacts page, panel tab and task thread (#17228)
  feat: add a library to capture and restore git workspace restore points (#17238)
  feat(connections): add Unikraft Cloud connection (#17139)
  feat(ui): add the artifact directions lab with the MVP V1 kit (#17213)
  fix(ui): remove the provider trace run button (#17211)
  fix(ui): keep task tabs steady when switching views (#17068)

# Conflicts:
#	packages/db/src/migrations/meta/0372_snapshot.json
#	packages/db/src/migrations/meta/_journal.json
2026-10-22 16:02:07 -07: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.

Editor dependency identity

Keep the root and workspace overrides for @codemirror/state, @codemirror/view, and @lezer/common aligned. CodeMirror requires shared extension identity, while Lezer parsers and syntax highlighters require shared NodeProp IDs. Multiple Lezer copies can crash code-block highlighting with tags is not iterable. src/lib/codemirror-single-instance.test.ts checks the installed dependency graph and highlights sample code through the editor's real language dependencies. GitHub Actions owns regeneration of pnpm-lock.yaml.