feat(foundry): refine map application controls

This commit is contained in:
Codex
2026-08-09 14:24:18 +03:00
parent 7025fd20b5
commit beb84f6de6
18 changed files with 633 additions and 186 deletions
+18 -1
View File
@@ -98,7 +98,7 @@
"domExports": ["createFloatingLayer"],
"domContract": ["nodedc-dropdown-surface", "nodedc-dropdown-option"],
"summary": "Shared portal/fixed floating layer for action and selection menus.",
"behavior": ["portal to document body", "viewport clamp", "vertical flip", "outside pointer close", "Escape close with trigger focus restore", "scroll and resize reposition", "contained menu scroll without geometry growth", "offscreen trigger close", "one open dropdown per window"],
"behavior": ["portal to document body", "viewport clamp", "vertical flip", "outside pointer close", "Escape close with trigger focus restore", "scroll and resize reposition", "contained menu scroll without geometry growth", "offscreen trigger close", "one open dropdown per window", "optional open-state notification"],
"rules": [
"Never render a runtime dropdown as an absolute child of a card, sticky header or scroll container.",
"Action menus and selection menus share floating behavior even when their row content differs.",
@@ -308,6 +308,22 @@
"Active route state uses the active surface and icon contrast from the theme."
]
},
{
"id": "application-side-panel",
"status": "baseline",
"package": "@nodedc/ui-react",
"exports": ["ApplicationSidePanel", "ApplicationSidePanelProps"],
"domContract": ["nodedc-application-side-panel", "nodedc-app-shell__end-panel"],
"summary": "Theme-aware trailing application panel paired with AdminNavigationPanel and hosted in a separate ApplicationShell end column.",
"anatomy": ["eyebrow and title", "optional description", "close action", "scrollable body", "optional footer"],
"behavior": ["right-to-left entrance", "separate push column", "controlled visibility", "theme token inheritance"],
"rules": [
"The panel uses the same 332352 px geometry, radius, surface, shadow and circular actions as AdminNavigationPanel.",
"ApplicationShell shrinks the expanded content/stage by one panel width plus the canonical page gap; the side panel never overlays the desktop work area.",
"The owning ApplicationPanel header action controls visibility; close always remains available and workspace interaction does not dismiss the panel implicitly.",
"Use this panel for application-level settings/detail. Bounded scene tools and subject cards remain WorkspaceWindow instances."
]
},
{
"id": "media-source-field",
"status": "baseline",
@@ -390,6 +406,7 @@
"Desktop Engine geometry is fixed at 390 px panel, 330 px content, 154/14/162 px control rows and 50 px section headers with a 12 px radius.",
"Inspector supports controlled openSections/onOpenSectionsChange state so a consumer can persist the exact accordion layout without remount defaults.",
"Inspector selection fields use InspectorSelectField only: a stacked visible label and the 276/8/46 px split control; integrated pills are prohibited.",
"The panel variant reuses AdminNavigationPanel pill, icon and theme tokens while retaining the same controlled accordion state and domain-owned content.",
"Accent-filled section headers belong to Environment Settings; neutral headers remain available for other approved inspector contexts."
]
}