fix(ui): 3 user-reported issues

1) MODAL OFF-SCREEN (Schema/AOI/Confirm dialogs)
DialogContent had `inset-0 w-full h-full` + `min-[880px]:inset-auto`
конфликтовал — inset-0 winning по CSS specificity, modal приклеивался
к левому краю viewport вместо центра. User screenshot показал Schema edit
выходящим за левую границу экрана.

Fix: remove inset-0 fullscreen pattern. Use simple centered modal —
left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 + w-[95vw] max-h-[95vh]
overflow-y-auto. На mobile <880px max-w из size variant даёт ширину 95vw
(natural fit). На desktop max-w ограничивает до 440/560/720/880/920px.

2) LOGO 'ORDINIS MDM' С CIRCLE ICON (per redesign prototype)
Sidebar logo: 'ORDINIS' → circle icon (accent orbit ring + dot) +
'ORDINIS' bold + 'MDM' mute subtitle (Tektur). SVG inline — нет external
dep.

Collapsed mode: только circle icon, no text (uses Tektur ORDINIS dropped).

3) TIMELINE BUTTON LABEL
InfoPanel button 'Time-travel…' → 'Таймлайн' (per user feedback). Behaviour
не меняется — клик открывает picker. Inline таймлайн visualization
отложен (большой refactor, нужен product decision).

Verified:
  - Dialog modal центрируется на десктоп
  - Logo рендерится с svg + text
  - Tests: 116 pass
This commit is contained in:
Zimin A.N.
2026-05-11 17:49:57 +03:00
parent 6b277a78a5
commit abdfaa8fcc
3 changed files with 28 additions and 11 deletions
@@ -76,11 +76,11 @@ export const DialogContent = React.forwardRef<
ref={ref}
className={cn(
'fixed z-50 grid gap-4 border border-line bg-surface p-6 shadow-2xl duration-200',
// Mobile <880px (per handoff): fullscreen 100vw × 100dvh, no corners,
// no centered transform. Editor body становится single-column natively.
'inset-0 w-full h-full',
// Desktop ≥880px: centered modal с rounded corners + max-w из SIZE_CLASSES.
'min-[880px]:left-1/2 min-[880px]:top-1/2 min-[880px]:inset-auto min-[880px]:h-auto min-[880px]:w-full min-[880px]:-translate-x-1/2 min-[880px]:-translate-y-1/2 min-[880px]:rounded-lg',
// Centered modal — left/top 50% + translate. В <880px mode пользуем
// max-width 95vw чтобы modal не упирался в edges (вместо fullscreen
// inset-0 который конфликтовал с left-1/2 → modal off-screen).
'left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',
'w-[95vw] max-h-[95vh] overflow-y-auto rounded-lg',
'data-[state=open]:animate-in data-[state=closed]:animate-out',
'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',
'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',