feat(foundry): refine map application controls
This commit is contained in:
+29
-4
@@ -95,8 +95,11 @@ Window — единая механика открытия modal и правой
|
||||
|
||||
`WorkspaceWindow` — modeless-окно внутри рабочей сцены приложения. Оно рендерится непосредственно в переданном workspace, не использует portal и не может перекрыть шапку, навигацию или соседние панели за пределами этого workspace.
|
||||
|
||||
На Map Page `WorkspaceWindow` используется и для facet-групп, и для
|
||||
provider-neutral карточки выбранного subject. Chevron внутри facet-строки
|
||||
На Map Page `WorkspaceWindow` используется для facet-групп, активного сектора
|
||||
и provider-neutral карточки выбранного subject. Настройки карты являются
|
||||
application-level панелью `ApplicationSidePanel`, а слои открываются через
|
||||
канонический toolbar `Dropdown`; они не участвуют в bounded z-index stack.
|
||||
Chevron внутри facet-строки
|
||||
владеет только раскрытием дерева subjects; тело строки сохраняет действие
|
||||
фильтра. Смена совместимого subject не пересоздаёт карточку и не сбрасывает
|
||||
активную вкладку. Joined data-product aspects не создают отдельные окна или
|
||||
@@ -107,8 +110,10 @@ slot `reference-points`. Их три presentation profiles (`Метро`, `Во
|
||||
`Станции РЖД`) являются живыми каноническими Inspector sections: приложение
|
||||
может менять высоту, размер, label и LOD, не создавая provider-specific UI.
|
||||
|
||||
Центральный Map Toolbar содержит template-owned универсальный поиск. В
|
||||
закрытом состоянии это три круглых действия; при открытии общий pill
|
||||
Центральный Map Toolbar содержит Objects, Layers и template-owned
|
||||
универсальный поиск. Слои используют тот же map-glass dropdown и геометрию,
|
||||
что Objects, вместо отдельного плавающего окна. В закрытом состоянии toolbar
|
||||
содержит четыре круглых действия; при открытии поиска общий pill
|
||||
симметрично расширяется, действия остаются слева, а справа появляется
|
||||
search-field и список результатов. Индекс строится по domain subjects,
|
||||
presentation label fields и разрешённым Data Product projections. Компонент не
|
||||
@@ -220,6 +225,26 @@ setup-команды, сохранение, API и права принадлеж
|
||||
|
||||
`AdminNavigationPanel` поддерживает сортируемые route-items через общий Drag & Drop contract. Приложение передаёт новый порядок id, а панель использует каноническую шеститочечную ручку Engine. Порядок не хранится отдельно внутри navigation-компонента.
|
||||
|
||||
## ApplicationSidePanel
|
||||
|
||||
`ApplicationSidePanel` — правая application-level пара к `AdminNavigationPanel`.
|
||||
Она использует ту же ширину `332–352 px`, радиус, theme-aware surface, тень и
|
||||
круглые действия, но появляется справа налево. `ApplicationShell` размещает её
|
||||
в отдельной end-колонке и на desktop уменьшает доступную ширину раскрытого
|
||||
content/stage на ширину панели плюс канонический gap `20 px`; overlay карты не
|
||||
создаётся.
|
||||
|
||||
Панель контролируется приложением. Она открывается и закрывается явным action
|
||||
в header `ApplicationPanel`; Close всегда закрывает её, а взаимодействие с
|
||||
картой не меняет состояние панели. Внутри настроек используется `Inspector
|
||||
variant="panel"`: accordion сохраняет свой layout-state, а его заголовки
|
||||
получают pill/icon geometry и цвета левой панели из theme tokens.
|
||||
|
||||
Этот формат предназначен для настроек и detail-контента уровня Application.
|
||||
Инструменты, сектор, facet-окна и карточки, ограниченные самой сценой, остаются
|
||||
`WorkspaceWindow`. Floating dropdown для короткого списка слоёв не заменяется
|
||||
полноразмерной side panel.
|
||||
|
||||
## Drag & Drop
|
||||
|
||||
`DragHandle`, `DragDropRoot`, `DraggableItem`, `DropZone`, `SortableScope`, `SortableItem` и `SortableList` образуют общий React-контракт переноса и сортировки. Он перенесён из рабочего Engine-паттерна: drag начинается только за шесть точек и только после движения на `6 px`, поэтому обычный клик по строке не конфликтует с навигацией.
|
||||
|
||||
Reference in New Issue
Block a user