Atomic Angular — Doc interne

Document workspaces

A user-managed set of documents — listed, opened, uploaded into, shared and previewed — as Angular components, with a custom-element build for pages that are not Angular.

A workspace is a named set of documents that a user creates, fills by uploading files, shares with other people and previews. It is backed by the Agent Workspace API of @sinequa/atomic (api/v2/agent-workspace/*).

Two entry points

The components ship from @sinequa/atomic-angular/document-workspaces. The custom elements built on them (<lexiq-workspaces>, <lexiq-workspace-picker>, <lexiq-workspace-mention-list>) ship from @sinequa/atomic-angular/workspace-elements, whose @angular/elements peer is optional — an Angular application never needs it.

How the parts fit

WorkspacesShell is the whole view in one component. Every part it is made of is exported too, for a host that wants its own layout. None of the parts navigates or opens a dialog it does not own: each one says what the user asked for, and whoever hosts it decides.

WorkspacesShell WorkspaceList WorkspaceDetail UploadTracker DocumentPreviewPanel Dialogs: EditWorkspace, ShareWorkspace, UploadDocuments, ConfirmAction WorkspacesStore UploadService and UploadTrackerStore PickWorkspace WorkspaceMention

All of them read the same WorkspacesStore, so a change made in one — a role changed from "Manage access", a status patched by the upload flow — shows in the others without anything being pushed.

Prerequisites

  • @sinequa/atomic 2.9 or later, which carries the Agent Workspace API the store calls (listWorkspaces, createWorkspace, addWorkspaceDocuments…), a backend that exposes api/v2/agent-workspace/*, and a configured client (setGlobalConfig, or the application's own bootstrap).
  • Transloco, with the document-workspaces translation scope the package ships, and provideTranslocoMessageformat(): the plurals ("3 people have access") are written in ICU.
  • The styles: the components are styled with galactik tokens and Tailwind utilities, so the application's Tailwind build scans the library, as it does for the rest of @sinequa/atomic-angular.

What's next

On this page