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.
5.7 KiB
Подключение приложений
Текущее состояние
Первый этап не меняет существующие приложения. Репозиторий фиксирует 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 не публиковался, исходники компонентов в приложение не копируются.