# citation-work A document review workspace — the React surfaces for the review workflow: collection list, viewer shell, evidence sidebar, annotation create flow, and review-oriented upload/navigation shell. Published as the `@citation-evidence/work` package and consumed by the `citation-evidence` umbrella app's review mode. ## Current state This repo is now the **code of record** for the review workspace. The slice was extracted from the umbrella app under `CWORK-WP-0001`; `citation-evidence` no longer carries a local `src/work/` implementation and instead depends on this package (its `@work` alias resolves here). Package surface (`src/work/index.ts`): - **Shell:** `ReviewShell` — the three-pane review layout (collection · viewer · sidebar) - **Panes:** `CollectionList`, `ViewerShell`, `EvidenceSidebar` - **Capture/edit:** `InlineCaptureForm`, `EvidenceFormBody` - **Upload:** `UploadDropzone` (also the default `ReviewShell` upload slot) - **Providers/hooks:** `EngineProvider`, `SessionProvider`, and the associated `use*` hooks; `useExportEvidence`; `useDebugFlag` ### Upload seam decision (T03) `UploadDropzone` is owned by this package — it depends only on `@source` and the local engine/session hooks, so the shell renders a complete review surface with no umbrella-local imports. `ReviewShell` still exposes an `upload` slot so a consumer can substitute its own affordance; when omitted, the package default is used. ## Boundary `citation-work` depends on: - [`@citation-evidence/engine`](../citation-engine/) - [`@citation-evidence/evidence-anchor`](../evidence-anchor/) - `@source` (PDF ingestion + viewer-url policy) It may **not** import from binder-owned or umbrella-app-owned review-to-form code. The dependency edges are enforced by `eslint-plugin-boundaries` in `eslint.config.js`. ## Alias / extraction notes `citation-engine` and `evidence-anchor` are extracted sibling packages and are consumed by their package names. `@source/*` still resolves into the umbrella's `src/source` façade because that façade owns the local `viewer-url` policy that is not part of the extracted `evidence-source` package. This is the one remaining transitional edge; see the deferred list below. ## Deferred after this extraction The following were intentionally **not** part of `CWORK-WP-0001` and remain for a subsequent workplan slice (see the workplan's "Deferred After This Workplan" section for the authoritative list): - collection search / filter UX, - document review-status interactions, - evidence-item status / tagging / filtering UX, - binder-integrated review-to-form workflows, - new viewer/document-format features beyond the current PDF slice, - retiring the `@source` façade edge once a `viewer-url` home is decided (either a small local module here or an `evidence-source` addition). ## Verification ```bash pnpm install pnpm typecheck pnpm lint pnpm test ``` ## Workplan - [CWORK-WP-0001](workplans/CWORK-WP-0001-extract-review-workspace.md)