feat(editor): ExportModal + TimeTravelModal + InfoPanel merge + fixes
UI redesign matching prototype (Ordinis (3) dump): - ExportModal: format (CSV/JSON/Excel/SQL) + scope (all/filtered/selected) + column toggles + encoding/delimiter + preview filename per redesign line 1059-1092. CSV uses backend mutation, JSON client-side from filtered rows, Excel/SQL disabled (backend pending). - TimeTravelModal: full-page compare СЕЙЧАС vs ТОЧКА ВО ВРЕМЕНИ + quick presets (сейчас/неделя/месяц/год/при создании) + step toggle версия/день + slider + tabs (Что изменилось / Записи на момент / Структура и поля) + "Открыть как readonly" CTA. Replaces inline TimeTravelPicker. - InfoPanel ← используют merge: rich rows с field path + active records count + onClose policy chip (BLOCK/WARN/CASCADE). Inline DictionaryDependentsPanel above records table removed (one source of truth). - Sidebar logo: match redesign/ui-kit.html .brand SVG (outer ring + inner faded ring + orbit dot offset right cx=22.5). ORDINIS Tektur tracking 0.22em + MDM smaller mute 0.32em. - Bg neutralized: #fbf8ee Earth cream → #faf9f5 warm neutral default (per user preference, Earth cream still described in comment как opt-in). - WorkflowBanner: Case 1 Live (approvalRequired=false) returns null — permanent "Опубликовано" banner = noise, status already visible в InfoPanel scope/version/updatedAt. Banner показывается только когда есть actionable state. Critical bug fixes: - fix(CascadeConfirmDialog): infinite render loop "Maximum update depth exceeded". useEffect had cascadeMut (TanStack Query mutation wrapper) в deps — wrapper identity changes every render → effect fires → reset() → store update → render → loop. Extract stable `reset` reference перед useEffect. Симптомы у user: создание/редактирование записи не работали. - fix(semantic-release): add missing peer dep conventional-changelog-conventionalcommits (9.3.1). semantic-release 22+ больше не bundles preset. Без неё release job падал с "Cannot find module 'conventional-changelog-conventionalcommits'".
This commit is contained in:
@@ -185,22 +185,25 @@ function SidebarContent({
|
||||
onClick={onNavigate}
|
||||
title="ORDINIS MDM"
|
||||
>
|
||||
{/* Circle orbit icon — accent ring + dot center */}
|
||||
{/* Brand orbit icon per redesign/ui-kit.html .brand SVG:
|
||||
outer ring r=13 + inner faded ring r=6 + orbit dot offset right cx=22.5. */}
|
||||
<svg
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 20 20"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
aria-hidden
|
||||
className="shrink-0"
|
||||
className="shrink-0 text-accent"
|
||||
>
|
||||
<circle cx="10" cy="10" r="8.5" stroke="var(--color-accent)" strokeWidth="1.4" />
|
||||
<circle cx="10" cy="10" r="2" fill="var(--color-accent)" />
|
||||
<circle cx="16" cy="16" r="13" stroke="currentColor" strokeWidth="1.6" />
|
||||
<circle cx="16" cy="16" r="6" stroke="currentColor" strokeWidth="1" opacity="0.45" />
|
||||
<circle cx="22.5" cy="16" r="2.2" fill="currentColor" />
|
||||
</svg>
|
||||
{!collapsed && (
|
||||
<span className="font-display text-base tracking-wider text-ink">
|
||||
ORDINIS <span className="text-mute font-normal">MDM</span>
|
||||
<span className="font-display text-[15px] font-semibold leading-none tracking-[0.22em] text-ink inline-flex items-baseline gap-1.5">
|
||||
ORDINIS
|
||||
<span className="text-mute font-normal tracking-[0.32em] text-[0.78em]">MDM</span>
|
||||
</span>
|
||||
)}
|
||||
</Link>
|
||||
|
||||
Reference in New Issue
Block a user