Keep progress inside the initiating Button/IconButton or centered within a LoadingRegion without changing layout or unmounting live content. Document ownership and completion/error behavior in the registry and living catalog. Validation: qualified NET02 DG build/typecheck/registry/loading tests; existing browser geometry, theme and error lifecycle acceptance. All eleven committed files match the qualified source artifact byte for byte.
90 lines
5.7 KiB
Markdown
90 lines
5.7 KiB
Markdown
# Подключение приложений
|
||
|
||
## Текущее состояние
|
||
|
||
Первый этап не меняет существующие приложения. Репозиторий фиксирует baseline и создаёт пакетный контракт. Это позволяет продолжать текущую разработку без одномоментной переделки Engine, Ops, BIM, CMS, SEO и Launcher.
|
||
|
||
## Рекомендуемый порядок
|
||
|
||
### 1. Catalog validation
|
||
|
||
Сначала компоненты проверяются как самостоятельная система в dark/light и нескольких accent. До этого они не объявляются заменой production-кода.
|
||
|
||
### 2. Launcher/Hub pilot
|
||
|
||
Первый consumer — Launcher/Hub как основной visual reference. Подключение выполняется по одному вертикальному набору:
|
||
|
||
- tokens/theme;
|
||
- Button/IconButton;
|
||
- Dropdown/Select;
|
||
- Window/Confirmation;
|
||
- AppHeader.
|
||
- ApplicationShell/ApplicationPanel;
|
||
- useApplicationWorkspace;
|
||
- Icon/IconButton.
|
||
|
||
Локальные реализации удаляются только после функционального и визуального сравнения.
|
||
|
||
### 3. CMS и SEO
|
||
|
||
Используют те же компоненты и механику окон. CMS подключает DOM-layer, SEO — React-layer. Первым общим admin pattern подключается `MediaSourceField`/`createMediaSourceController`; storage API остаётся в приложении. Цветовые различия оформляются theme overrides.
|
||
|
||
### 4. Engine
|
||
|
||
Сначала библиотека заменяет компоненты только в уже новом Environment Settings и NDC Agent Inspector. Затем остальные инспекторы переводятся на Inspector/ControlRow постепенно. Legacy UI не переносится в библиотеку и не используется как reference.
|
||
|
||
### 5. Task Manager / Ops
|
||
|
||
Подключение начинается с floating-layer и modal primitives, где уже сформулирован канон. Массовая замена Plane UI не выполняется одним изменением.
|
||
|
||
### 6. BIM Viewer
|
||
|
||
Подключает tokens/styles и `@nodedc/ui-dom`. React в BIM ради дизайн-системы не добавляется.
|
||
|
||
## Новые приложения
|
||
|
||
Новый React-проект начинает с `ApplicationShell`:
|
||
|
||
- установить опубликованные NODE.DC UI packages;
|
||
- выбрать theme и accent;
|
||
- передать фиксированный AppHeader, stage, navigation и content;
|
||
- управлять shell через `useApplicationWorkspace`, а не набор локально связанных boolean;
|
||
- передавать storage/upload в `MediaSourceField` как adapter callback;
|
||
- использовать Window/Dropdown и канонический Icon вместо локальных реализаций;
|
||
- проверять registry перед созданием локального control;
|
||
- хранить доменные компоненты у себя.
|
||
|
||
Нижняя service rail добавляется только продуктам с витриной сервисов. В обычном оконном приложении она отсутствует.
|
||
|
||
## Adoption matrix
|
||
|
||
| Приложение | Текущий источник | Целевой adapter | Первый набор |
|
||
| --- | --- | --- | --- |
|
||
| Launcher/Hub | React/local shared | React | header, button, dropdown, window |
|
||
| SEO | React/local overrides | React | theme, window, field, select |
|
||
| CMS | Vanilla DOM | DOM | theme, header, modal, select |
|
||
| Engine | React/mixed generations | React | new inspector and environment settings only |
|
||
| Ops | React/Plane packages | React | floating behavior and modal primitives |
|
||
| BIM Viewer | Vanilla JS | DOM | tokens, glass select, settings surfaces |
|
||
|
||
## Не делать
|
||
|
||
- не переписывать все приложения одновременно;
|
||
- не копировать `packages/ui-react/src` в consumer;
|
||
- не поддерживать отдельную тему путём fork компонента;
|
||
- не использовать legacy Engine inspector как промежуточный канон;
|
||
- не удалять production local component до проверки package replacement.
|
||
# Mission Core and onboard Home (R17)
|
||
|
||
Mission Core and Mission Core Node consume `EnvironmentSettingsWindow`,
|
||
`EnvironmentMediaPlaylistEditor`, `EnvironmentBackgroundMedia` and `LandingStage`
|
||
from `@nodedc/ui-react`. The former Control Station files are thin API/product
|
||
registry adapters or compatibility re-exports. They own no copied form markup or
|
||
presentation CSS. Node supplies Home only; Core retains all existing pages and
|
||
its wire/storage schema. Both use the existing `UserProfileMenu` avatar dropdown.
|
||
The component contract and catalog example are in `ENVIRONMENT_SETTINGS.md`.
|
||
|
||
## Mission Core loading (2026-09-08)
|
||
|
||
Core и Node используют общий sensor-ui/X4 frontend с Button.loading, IconButton.loading и LoadingRegion из Design Guideline. SDK/network semantics остаются в consumer, геометрия ожидания принадлежит DG. Этот локальный кандидат передаётся через source manifest с hashes вместе с Node installer; public npm release не публиковался, исходники компонентов в приложение не копируются.
|