# Authoring Studio

Reuse XWUIShell for an editor without introducing another product shell:

- FIRST: roster or explorer; set presence to expanded to span the header/footer.
- HEADER: the document toolbar and XWUINavTabs.
- BODY: XWUISplitter group with settings first and a live preview second.
- LAST: an AI chat or inspector; hidden initially, inline on desktop and floating
  at phone widths. Toggle through the part's public presence API.
- FOOTER: status, XWUIButtonFAB and a collapsible XWUIItemGroup action history.

Configure firstWidth for the spanning roster; use resizableLast,
regionNavHotkey, direction, fillHeight and
bodyNoScroll (with scrollBody false) on the shell. Each pane scrolls its own
content; the preview fills the available height. XWUISplitter owns pane constraints, keyboard resize,
stackBelow and optional persistKey. Supply existing elements as slot data rather
than reconstructing them on a resize or panel toggle. Text input, streaming chat
and a 3D canvas then keep their identity.

On a compact layout, switch side parts to floating through setFlow and hide them
until their labelled controls are activated. The outer application's navigation
rail remains a separate XWUIShellApp.

Configured sizes remain the restore sizes. Presence and floating state resolve
separate grid tracks, so a hidden pane occupies no column even after a divider
has written a size inline. This pattern applies to document, flow, map and scene
editors; no product stylesheet is required.
