| 1 | # SkiaKit (IDE) |
| 2 | |
| 3 | Переиспользуемые **Skia-примитивы** для IDE-surfaces: чат ([0057](../../docs/adr/0057-chat-surface-pipeline-adoption.md)), graph-backed surfaces ([0067](../../docs/adr/0067-graph-backed-surfaces-contract.md)), будущие MFD-карточки. |
| 4 | |
| 5 | **Не путать с:** |
| 6 | |
| 7 | | Слой | Путь | Назначение | |
| 8 | |------|------|------------| |
| 9 | | **UiKit** | `Views/UiKit/` | Avalonia-контролы (Ecam*) | |
| 10 | | **PrimitivesKit** | `Cockpit/PrimitivesKit/` | Индикаторы кабины (Lamp, Bar, …) — [0064](../../docs/adr/0064-deck-primitives-visual-language-render-layer-and-palette.md) | |
| 11 | | **SkiaKit** | `Views/SkiaKit/` | Отрисовка примитивов IDE на Skia (без доменной логики) | |
| 12 | |
| 13 | ## Правила |
| 14 | |
| 15 | - Kit **не импортирует** Features/ViewModels/Services pipeline stages. |
| 16 | - Только: `model + ISkiaKitPaintTheme + bounds → Measure/Draw`. |
| 17 | - Цвета — через `SkiaKitThemeBridge.ResolveIdeSurface` или расширения (напр. `SkiaChatTheme`). |
| 18 | |
| 19 | ## Состав |
| 20 | |
| 21 | - `SkiaSectionedCard` — карточка с отсеками (заголовок секции + разделитель + строки). |
| 22 | - `SkiaTileGridLayout` — сетка плиток по ширине viewport. |
| 23 | - `SkiaTextLayout.Wrap` — перенос строк. |
| 24 | - `SkiaKitColor` / `SkiaKitThemeBridge` — мост CascadeTheme → SKColor. |
| 25 | - **`Graph/`** — graph-backed surfaces ([0067](../../docs/adr/0067-graph-backed-surfaces-contract.md)): |
| 26 | - вход: `Cockpit.Graph.Layout.GraphLayoutScene` (геометрия после Layout stage); |
| 27 | - `SkiaGraphSceneDrawing` — Render (рёбра → узлы → легенда), hit-test; |
| 28 | - `SkiaGraphVisualTheme`, `GraphLayoutSceneMapper` (мост с ViewModels для binding). |
| 29 | |
| 30 | Фичи (`Views/Chat/Skia/`, semantic map render, …) собирают **сцену** из kit + свой layout/compositor. |
| 31 | |