feat(ui): add bounded workspace windows

This commit is contained in:
Codex
2026-07-16 20:56:23 +03:00
parent a1c4ecaa93
commit 5f583caa05
8 changed files with 661 additions and 3 deletions
+16
View File
@@ -131,6 +131,22 @@
"A draggable inspector moves by its header and remains clamped to the viewport."
]
},
{
"id": "workspace-window",
"status": "baseline",
"package": "@nodedc/ui-react",
"exports": ["WorkspaceWindow", "WorkspaceWindowRect", "WorkspaceWindowProps"],
"domContract": ["nodedc-workspace-window"],
"summary": "Controlled modeless window for media, tools and synchronized views constrained to an application-owned workspace.",
"anatomy": ["controlled local rectangle", "title and optional status", "maximize and close actions", "scrollable body", "optional footer", "keyboard-accessible resize handle"],
"behavior": ["inline render without portal", "parent-bound dragging", "bottom-right resizing", "maximize within parent", "ResizeObserver reclamp", "pointer and keyboard geometry control", "application-owned activation and stacking"],
"rules": [
"The bounds element is an application-owned positioned and clipped workspace; WorkspaceWindow never escapes it or renders into document.body.",
"Rectangle, maximized state, visibility, activation and z-order are controlled by the application.",
"Use WorkspaceWindow for auxiliary views inside a stage; modal workflows and viewport inspectors continue to use Window.",
"Dragging and resizing remain clamped when the workspace changes size, including when it becomes smaller than the requested minimum."
]
},
{
"id": "confirmation-modal",
"status": "baseline",