Files
NODEDC_DESIGN_GUIDELINE/docs/ADOPTION.md
T
Codex 8c53f73ee5 Standardize action and region loading states
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.
2026-09-10 09:19:12 +03:00

5.7 KiB
Raw Blame History

Подключение приложений

Текущее состояние

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