Correct Hub and Engine component geometry
This commit is contained in:
@@ -8,7 +8,6 @@ Baseline намеренно отделяет готовые exports от изв
|
||||
- ProfileMenu — отделить визуальную карточку от identity/role API приложения.
|
||||
- ActionDropdown — добавить типизированные command rows поверх готового Dropdown.
|
||||
- DataTable — вынести toolbar, cells, loading/empty и row actions без entity schemas Launcher/Plane.
|
||||
- SideNavigation — route-aware навигация отдельно от уже готового Inspector accordion.
|
||||
- AvatarStack — согласовать overflow, presence и picker mode.
|
||||
|
||||
## P2 — продуктовые patterns
|
||||
@@ -32,4 +31,3 @@ Baseline намеренно отделяет готовые exports от изв
|
||||
6. выпустить minor version.
|
||||
|
||||
Так список сохраняет уже проделанную работу, но не превращает незавершённый локальный код в ложный канон.
|
||||
|
||||
|
||||
+17
-3
@@ -57,7 +57,12 @@ Dropdown владеет floating-layer поведением:
|
||||
|
||||
## Select
|
||||
|
||||
Select добавляет к Dropdown контролируемое значение, options и необязательный поиск. Native select не используется как видимый runtime UI, но может использоваться как fallback только в специально оговорённом legacy-контуре.
|
||||
Select добавляет к Dropdown контролируемое значение, options и необязательный поиск. У него две канонические формы:
|
||||
|
||||
- `integrated` — единая pill-поверхность Hub/Launcher;
|
||||
- `split` — форма Engine с отдельной областью значения и отдельной кнопкой раскрытия `46 px`, между ними зазор `8 px`.
|
||||
|
||||
Native select не используется как видимый runtime UI. Меню рендерится через portal; у Engine-варианта меню имеет радиус `20 px`, а строки — `14 px` и высоту `42 px`.
|
||||
|
||||
## Window
|
||||
|
||||
@@ -66,7 +71,7 @@ Window — единая механика открытия modal и правой
|
||||
- приложение контролирует `open`;
|
||||
- библиотека управляет portal, focus entry/trap/restore, Escape, backdrop и scroll lock;
|
||||
- `center` — modal;
|
||||
- `end` — inspector/settings/detail panel.
|
||||
- `end` — modeless inspector/settings/detail panel без затемнения, backdrop blur, backdrop close, focus trap и блокировки прокрутки страницы.
|
||||
|
||||
Содержание, сохранение и запросы принадлежат приложению.
|
||||
|
||||
@@ -88,6 +93,14 @@ Pill navigation для верхней панели и компактного п
|
||||
|
||||
Компонент фиксирует положение логотипа, высоту и выравнивание, но не знает маршруты конкретного приложения.
|
||||
|
||||
В Hub-форме центр состоит из круглого workspace trigger и segmented navigation. Справа используется единая profile-group поверхность с иконкой, подписью и круглым avatar. Эти элементы нельзя заменять случайными standalone-кнопками, сохраняя только приблизительную позицию.
|
||||
|
||||
## AdminNavigationPanel
|
||||
|
||||
Левая выезжающая панель Hub/Launcher. Библиотека владеет оболочкой `352 px`, радиусом `21.6 px`, внутренними отступами, full-bleed context/navigation pills, круглыми icon surfaces и анимацией появления. Приложение передаёт workspace/company, маршруты, active id и footer identity.
|
||||
|
||||
На desktop открытая панель занимает отдельную колонку с зазором `12 px` до основного контента, а не перекрывает его затемнённым overlay.
|
||||
|
||||
## StatusBadge
|
||||
|
||||
Статус использует semantic tone: neutral, success, warning, danger или accent. Бизнес-статус приложения маппится на tone в самом приложении.
|
||||
@@ -104,5 +117,6 @@ Inspector владеет:
|
||||
- вертикальным ритмом;
|
||||
- раскладкой label/control.
|
||||
|
||||
Engine продолжает владеть определениями полей, типами нод и сохранением значений.
|
||||
Для Engine Environment Settings desktop-контракт точный: окно `390 px`, рабочая колонка `330 px`, строка `154 + 14 + 162 px`, высота контрола `46 px`, section header `50 px` с радиусом `12 px`. Accent-filled section headers и полноширинные range/checker/select сохраняют геометрию исходника.
|
||||
|
||||
Engine продолжает владеть определениями полей, типами нод и сохранением значений.
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
- button/modal/dropdown primitives;
|
||||
- общая логика admin windows.
|
||||
|
||||
Для точной геометрии используются `src/widgets/top-bar/TopBar.tsx`, `src/widgets/admin-overlay/AdminOverlay.tsx` и `src/styles/globals.css`: трёхосевая шапка, круглый workspace trigger, segmented navigation, profile group и левая admin panel `352 px`.
|
||||
|
||||
Существовавший `dc-ui-guideline` использован как исходный инвентарь. Он больше не должен развиваться как независимая копия после подключения центрального репозитория.
|
||||
|
||||
## SEO и CMS
|
||||
@@ -36,6 +38,8 @@ CMS подтверждает необходимость DOM-пакета без
|
||||
|
||||
Все остальные legacy inspectors и старые plates не участвуют в принятии решений. Их будущее приведение к новому дизайну должно идти через эту библиотеку.
|
||||
|
||||
Размеры зафиксированы непосредственно по разрешённым исходникам: панель `390 px`, контент `330 px`, control row `154/14/162 px`, control height `46 px`, split-select `276/8/46 px`, section header `50 px` и radius `12 px`. Скриншоты от 10 июля 2026 года использованы как визуальная проверка, а не как замена исходному CSS.
|
||||
|
||||
## Task Manager / Ops
|
||||
|
||||
Используются только уже стандартизированные shared patterns и документы по dropdown/modal behavior. Известные legacy CustomMenu и screen-local wrappers не являются источником компонентов.
|
||||
@@ -56,4 +60,3 @@ CMS подтверждает необходимость DOM-пакета без
|
||||
- различную степень accessibility.
|
||||
|
||||
Поэтому библиотека фиксирует очищенный API и поведение, сохраняя происхождение решения в реестре.
|
||||
|
||||
|
||||
@@ -53,9 +53,10 @@ Side window использует ту же механику, но placement `end
|
||||
- будущих detail/settings panels;
|
||||
- CMS/SEO side editors, если они не требуют отдельного полноэкранного workflow.
|
||||
|
||||
По умолчанию это modeless-слой: он не затемняет страницу, не перехватывает клики по основной области, не закрывается по backdrop, не блокирует body scroll и не удерживает Tab внутри панели. Escape и кнопка закрытия остаются доступны. Если конкретный workflow должен быть modal, это задаётся явно, а не получается случайно из placement.
|
||||
|
||||
## Управление состоянием
|
||||
|
||||
Библиотека не создаёт глобальный store окон. Приложение владеет тем, какое окно открыто и какие данные в нём загружены. Библиотека владеет одинаковым поведением самого слоя.
|
||||
|
||||
Если приложению позже потребуется stack нескольких modeless-окон, это будет отдельный пакетный контракт, а не расширение локального z-index.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user