Top-level layout shell that provides the structural skeleton for editor applications. Uses a compound component pattern with named slots for menu bar, toolbars (top, left, right), a central dock area, and a status bar. Includes a context-based toolbar visibility system and configurable chrome separators.
Live Preview
Import
import { AppShell } from'entangle-ui';
Usage
<AppShellviewportLock>
<AppShell.MenuBar>{/* MenuBar component goes here */}</AppShell.MenuBar>
<AppShell.Toolbarposition="top">{/* Top toolbar */}</AppShell.Toolbar>
<AppShell.Toolbarposition="left">{/* Left side toolbar */}</AppShell.Toolbar>
<AppShell.Dock>{/* Main content / viewport */}</AppShell.Dock>
<AppShell.Toolbarposition="right">
{/* Right side toolbar */}
</AppShell.Toolbar>
<AppShell.StatusBar>{/* Status bar */}</AppShell.StatusBar>
</AppShell>
Compound Components
AppShell uses a compound component pattern. Each slot renders an appropriate semantic HTML element:
Slot
Element
Purpose
AppShell.MenuBar
<header>
Application menu bar area
AppShell.Toolbar
<div> or <aside>
Toolbar slots (top, left, right)
AppShell.Dock
<main>
Central content / viewport area
AppShell.StatusBar
<footer>
Bottom status bar
Viewport Lock
When viewportLock is enabled, the shell locks to the full viewport, preventing page scroll. This is the typical setup for editor applications.
Control the visual separator between chrome areas (toolbars) and content. Separate options exist for the top chrome (menu + top toolbar) and side chrome (left/right toolbars).