Skip to main content

Package boundaries

Choose the lowest shared layer that owns the behavior. Do not put product commands into a generic button or depend on Word just to reuse a table operation.

LayerOwnsDoes not own
office-uiReact primitives, tokens, overlays, menus, panelsEditor commands or document state
office-controlsCommand/property declarations and state helpersRendering or command registration
office-editor-uiEditor subscriptions, selection-aware controls, command executionA product's complete command catalogue or storage
office-iconsShared named SVG iconsButton labels or business actions
office-textProse, formatting, tables, math renderingWord page layout or application navigation
office-canvasGeometry, manipulation, connectors, canvas layoutThe viewport or pointer-event ownership
Product packagesNote, Word, Slides, and Site schemas and behaviorTenant accounts and cloud deployment
office-workspaceLocal document catalogue and navigationHosted workspace services

Framework boundaries

The DOM view and React view are different browser integrations over the editor foundations. Office UI components are React components. Product root exports and /ui or /view exports are separated so callers can choose the API they need. Import only documented public entry points.

The query editor exposes /core and /jql for headless parsing, and /react for components. Its root includes React exports; use the headless subpaths when you only need parsing.

Lifecycle boundaries

The host creates and disposes editing sessions. Shared UI reads state and sends commands. Storage receives snapshots or native files. Navigation waits for the host's save contract. A note embedded in another document has a separate editing session and an explicit change-delivery boundary.

Keep documentation aligned

Package manifests define exports and versions. Package README files define onboarding and integration notes. The site catalogue reuses these sources at build time. Add a new package to the documentation group map and document its public paths; CI rejects missing coverage.