Persist catalog layout and add inspector toolbar

This commit is contained in:
DCCONSTRUCTIONS
2026-07-10 23:28:10 +03:00
parent 8ca12f2676
commit 406e692a5e
14 changed files with 715 additions and 268 deletions
+19 -3
View File
@@ -120,11 +120,12 @@
"domExports": ["createModalController"],
"domContract": ["nodedc-overlay", "nodedc-window"],
"summary": "Canonical controlled window for modal and right-side panel presentations.",
"behavior": ["portal to body", "focus entry", "modal-only focus trap", "focus restore", "Escape close", "backdrop close policy", "modal-only 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", "optional bounded dragging for modeless inspectors"],
"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.",
"A right-side inspector is modeless by default: no dimming, no backdrop blur, no backdrop close, no focus trap and no body scroll lock."
"A right-side inspector is modeless by default: no dimming, no backdrop blur, no backdrop close, no focus trap and no body scroll lock.",
"A draggable inspector moves by its header and remains clamped to the viewport."
]
},
{
@@ -206,6 +207,21 @@
"A layout-level save action belongs to ApplicationPanel.utilityActions and is never duplicated inside individual content cards."
]
},
{
"id": "toolbar",
"status": "baseline",
"package": "@nodedc/ui-react",
"exports": ["Toolbar"],
"domContract": ["nodedc-toolbar-wrap", "nodedc-toolbar", "nodedc-toolbar__button"],
"summary": "Engine/BIM-derived magnifying application toolbar with left, right and bottom placements.",
"variants": ["left", "right", "bottom"],
"behavior": ["controlled active item", "lens magnification", "optional autohide hotzone", "theme-independent geometry"],
"rules": [
"Engine defaults are background #111115, border #111117, outline #1c1c1c, min 25 px, max 87 px and five lens items.",
"Toolbar actions call application navigation; they do not duplicate route state.",
"Placement and material are controlled values and belong to the persisted application layout."
]
},
{
"id": "icon",
"status": "baseline",
@@ -216,7 +232,7 @@
"variants": ["14 px", "16 px", "18 px"],
"rules": [
"Use semantic names from registry/icons.json.",
"The containing component owns surface, hit target and state; the icon owns only the glyph and is optically scaled to 78% inside controls.",
"The containing component owns surface, hit target and state; the icon owns only the glyph and uses the canonical 16 px default without an extra CSS scale.",
"Do not copy complete Lucide or Font Awesome catalogs into an application."
]
},