Correct Hub and Engine component geometry

This commit is contained in:
DCCONSTRUCTIONS
2026-07-10 03:14:43 +03:00
parent 73629d68c3
commit 4a9ad01ea6
28 changed files with 922 additions and 167 deletions
-11
View File
@@ -42,16 +42,6 @@
"requiredBehavior": ["toolbar", "responsive overflow", "row actions", "editable cells", "loading", "empty state"],
"reasonNotBaseline": "The library should own presentation and interaction slots, not adopt Launcher entity schemas or Plane table models."
},
{
"id": "side-navigation",
"classification": "planned-pattern",
"priority": "P1",
"referenceSources": ["launcher", "engine"],
"expectedPackage": "@nodedc/ui-react",
"dependsOn": ["glass-surface", "button", "status-badge"],
"requiredBehavior": ["sections", "active item", "optional nested groups", "compact viewport"],
"reasonNotBaseline": "Inspector accordion is implemented; application-level navigation requires a separate route-aware contract."
},
{
"id": "avatar-stack",
"classification": "planned-primitive",
@@ -124,4 +114,3 @@
}
]
}
+29 -6
View File
@@ -24,6 +24,7 @@
"domContract": ["nodedc-button", "nodedc-icon-button"],
"summary": "Text and icon actions with shared sizing, states and computed accent contrast.",
"variants": ["primary", "secondary", "ghost", "danger", "accent"],
"shapes": ["default", "pill", "rounded"],
"rules": [
"Icon-only actions are circular by default.",
"Filled accent actions derive foreground contrast from the actual accent.",
@@ -97,7 +98,13 @@
"domPackage": "@nodedc/ui-dom",
"domExports": ["createSelectController"],
"summary": "Theme-independent selection control using the canonical dropdown layer.",
"behavior": ["controlled value", "optional search", "disabled options", "selected state", "portal menu"]
"variants": ["integrated", "split"],
"behavior": ["controlled value", "optional search", "disabled options", "selected state", "portal menu"],
"rules": [
"Integrated is the single-pill Hub/Launcher form.",
"Split is the Engine form: a separate value surface and a 46 px toggle separated by an 8 px gap.",
"The portal menu preserves its source-family row geometry instead of inheriting card radii."
]
},
{
"id": "window",
@@ -108,10 +115,11 @@
"domExports": ["createModalController"],
"domContract": ["nodedc-overlay", "nodedc-window"],
"summary": "Canonical controlled window for modal and right-side panel presentations.",
"behavior": ["portal to body", "focus entry", "focus trap", "focus restore", "Escape close", "backdrop close policy", "body scroll lock"],
"behavior": ["portal to body", "focus entry", "modal-only focus trap", "focus restore", "Escape close", "backdrop close policy", "modal-only body scroll lock"],
"rules": [
"Open state belongs to the application; focus/layer behavior belongs to the component.",
"The same window contract is used by Launcher, CMS and SEO; theme variables supply color differences."
"The same window contract is used by Launcher, CMS and SEO; theme variables supply color differences.",
"A right-side inspector is modeless by default: no dimming, no backdrop blur, no backdrop close, no focus trap and no body scroll lock."
]
},
{
@@ -134,7 +142,7 @@
"id": "app-header",
"status": "baseline",
"package": "@nodedc/ui-react",
"exports": ["AppHeader", "HeaderProfile", "HeaderWorkspace"],
"exports": ["AppHeader", "HeaderProfile", "HeaderProfileButton", "HeaderWorkspace", "HeaderAvatar"],
"domContract": ["nodedc-header-shell", "nodedc-header"],
"summary": "Three-axis NODE.DC application header with fixed brand geometry and composable center/right slots.",
"anatomy": ["left brand", "optional left context", "center navigation/workspace", "right actions/profile"],
@@ -143,6 +151,20 @@
"Product routes and profile content are application data passed into stable slots."
]
},
{
"id": "admin-navigation-panel",
"status": "baseline",
"package": "@nodedc/ui-react",
"exports": ["AdminNavigationPanel"],
"domContract": ["nodedc-admin-panel"],
"summary": "Hub-derived left administration panel with context selectors, route navigation, close action and footer identity.",
"anatomy": ["eyebrow and title", "close action", "workspace context", "company context", "route items", "footer identity"],
"rules": [
"The panel shell, full-bleed pills and icon circles are library geometry; routes and identity data remain application-owned.",
"The desktop panel is 352 px wide with a 21.6 px shell radius and opens beside, not over, the main Hub content.",
"Active route state uses the active surface and icon contrast from the theme."
]
},
{
"id": "status-badge",
"status": "baseline",
@@ -160,9 +182,10 @@
"summary": "Accordion settings/definition inspector derived only from the redesigned Engine environment and NDC agent inspector.",
"rules": [
"Legacy Engine inspectors are not reference implementations.",
"Domain-specific field definitions remain in Engine; reusable layout and controls live here."
"Domain-specific field definitions remain in Engine; reusable layout and controls live here.",
"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.",
"Accent-filled section headers belong to Environment Settings; neutral headers remain available for other approved inspector contexts."
]
}
]
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"schemaVersion": "1.0.0",
"libraryVersion": "0.1.0",
"libraryVersion": "0.2.0",
"name": "NODE.DC Design System",
"purpose": "Canonical code-level UI system for current and future NODE.DC applications.",
"packages": [