// EditorShell — the dual-canvas workspace, themed by the wrapping artboard. function TopBar({ data, presence }) { return (
Socrata
/ {data.project.scope} / {data.project.name} {data.project.branch}
model in sync · {data.project.lastSync}
MC
); } function LeftRail({ data, focusBlockId, setFocusBlockId, density }) { const [collapsed, setCollapsed] = React.useState(false); const [open, setOpen] = React.useState({ outline: true, model: true, requirements: true }); const toggle = (k) => setOpen((s) => ({ ...s, [k]: !s[k] })); if (collapsed) { return ( ); } return ( ); } function CanvasHeader({ title, subtitle, right }) { return (
{title}
{subtitle}
{right}
); } function EditorShell({ data, density, markupStyle, diagramStyle, presence }) { const [focusBlockId, setFocusBlockId] = React.useState(null); return (
Fit 100% Layout
} />
block actor constraint
); } window.EditorShell = EditorShell;