feat(editor): wrap InfoPanel + main content in bordered panels per prototype

Per user feedback: "словари в своих панелях то как у нас было ранее".

Per redesign prototype editor view (Ordinis(4) compact.html):
- InfoPanel: was floating sidebar aside без borders → теперь
  `rounded-lg border border-line bg-surface p-4` — visible bordered card
  containing PUBLIC chip + meta + Связи + actions.
- Main editor area: tabs + toolbar + tab content (records/relations/
  fields/json/events/history) обёрнуты в `rounded-lg border border-line
  bg-surface overflow-hidden` panel.
- WorkflowBanner и AOI banner остаются outside panels (status chrome).

Visual containment отделяет editor chrome от page background, делает
очевидным где info ends / table starts. Matches prototype Screen 03-08.
This commit is contained in:
Zimin A.N.
2026-05-11 20:11:04 +03:00
parent d77f040a5c
commit ce1f40c5d1
2 changed files with 9 additions and 1 deletions
@@ -51,7 +51,7 @@ export function EditorInfoPanel({ detail, recordCount, actions }: EditorInfoPane
const incomingDeps: SchemaDependent[] = useMemo(() => refByRaw ?? [], [refByRaw]) const incomingDeps: SchemaDependent[] = useMemo(() => refByRaw ?? [], [refByRaw])
return ( return (
<aside className="lg:sticky lg:top-2 self-start space-y-4 lg:max-h-[calc(100vh-7rem)] lg:overflow-y-auto pr-2"> <aside className="lg:sticky lg:top-2 self-start space-y-4 lg:max-h-[calc(100vh-7rem)] lg:overflow-y-auto rounded-lg border border-line bg-surface p-4">
{/* Scope badge — top of panel */} {/* Scope badge — top of panel */}
<span <span
className={cn( className={cn(
@@ -619,6 +619,11 @@ function DictionaryDetail() {
<WorkflowBanner detail={detailQuery.data} pendingCount={pendingByKey.size} /> <WorkflowBanner detail={detailQuery.data} pendingCount={pendingByKey.size} />
)} )}
{/* Main editor panel — tab bar + toolbar + tab content в bordered card
* per redesign prototype. Visual containment отделяет editor от
* page chrome. */}
<div className="rounded-lg border border-line bg-surface overflow-hidden">
{/* Editor tabs per handoff Stage 3.4 + redesign: {/* Editor tabs per handoff Stage 3.4 + redesign:
* - counts в labels (Записи 127, Связи 6, Поля 12) * - counts в labels (Записи 127, Связи 6, Поля 12)
* - right-aligned actions: Schema edit + +Запись per редизайн */} * - right-aligned actions: Schema edit + +Запись per редизайн */}
@@ -973,6 +978,9 @@ function DictionaryDetail() {
</> </>
)} )}
{/* === end records tab content === */} {/* === end records tab content === */}
</div>
{/* === end editor main panel === */}
</div> </div>
</div> </div>
{/* === end 3-col grid === */} {/* === end 3-col grid === */}