# Продуктовые экраны ADMY: инвентарь, архетипы и правила автоматического дизайна

Источник — приложение `E:\D3S1GN\frontend_old` (Vue 3, vue-router), инвентарь 2026-09-02: 126 роутов-листьев, 126 десктопных и 126 мобильных страничных файлов. Машинная проекция — `/product-screens.json` (`src/lib/spec/data/product-screens.js`), человеческая — страница `/screens`. Документ для дизайнеров, Studio 42 и ИИ: как собирать экраны продукта из канона «42», не изобретая новых сущностей.

## Как читать

- **Архетип** — тип экрана с фиксированным порядком регионов и правилами. Любой экран продукта — один из десяти архетипов; новый экран сначала относится к архетипу, потом наполняется.
- **Регион** — область экрана в порядке сверху вниз; у региона — список компонентов канона, из которых он собирается.
- **Легаси → ds** — карта имён Vue-библиотеки и обёрток приложения к компонентам канона: так читаются старые экраны и ТЗ.
- **Таблица экранов** — каждый роут с назначением, архетипом, компонентами ds и особенностями таблицы.

## Сводка

| Архетип | Экранов | Назначение |
| --- | --- | --- |
| `report` Отчёт-таблица | 44 | Метрики по срезу (даты, кампании, страны, источники) с фильтрами, итогами и экспортом. |
| `list` Список сущностей | 33 | Кампании, креативы, пользователи, домены: карточки или таблица с массовыми действиями и созданием. |
| `editor` Редактор сущности | 27 | Карточка кампании, площадки, пользователя: табы разделов, острова с полями, сводка сбоку, сохранение. |
| `dashboard` Дашборд | 4 | Сводка по роли: ключевые числа, графики, новости и быстрые переходы. |
| `auth` Вход и регистрация | 5 | Вход, регистрация, восстановление пароля, подтверждение — форма на карточке поверх тёмного фона. |
| `wizard` Мастер создания | 2 | Создание сущности за несколько шагов: тип, настройки, подтверждение. |
| `chat` Чат поддержки | 1 | Лента сообщений с вложениями и полем ввода. |
| `tool` Инструмент | 2 | Расчёт или преобразование: форма параметров и результат таблицей. |
| `settings` Настройки | 2 | Профиль, уведомления, трекер: табы разделов и острова с переключателями. |
| `docs` Документация | 2 | Статьи, API и справка внутри продукта. |
| `service` Служебные экраны | 4 | 404, результат оплаты, мобильное меню «ещё», корневой layout. |

## Архетипы: регионы и правила

### `report` — Отчёт-таблица (44)

Метрики по срезу (даты, кампании, страны, источники) с фильтрами, итогами и экспортом.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header` | заголовок отчёта; в действиях справа — экспорт и обновление (`button` ghost со значком) |
| filters | `island`, `input-date-range`, `combobox`, `segmented-control`, `button`, `drawer` | период первым, затем сущности (combobox с подгрузкой), режимы include/exclude; больше четырёх фильтров — в Drawer по кнопке |
| toolbar | `action-panel`, `input`, `tag` | поиск, сортировка и применённые фильтры чипами над таблицей |
| table | `table`, `column-settings`, `pagination` | `fixed` первая колонка с названием, `total` для метрик, `expandable` только для разбивки по часам/дням, `sortable`, `size="s"` для плотных отчётов, `column-settings` при более чем восьми колонках |

Правила:

- **must** — Числовые колонки выровнены по `end`, первая колонка заморожена и содержит название сущности.
- **must** — Строка итогов есть, если в таблице есть суммируемые метрики.
- **should** — Фильтр периода стоит первым; выбор сущностей — Combobox с ленивой подгрузкой.
- **must-not** — Не раскрывать строки без вложенной разбивки: `expandable` только там, где есть дети.

Мобильный вариант: Page Header(m), подстраницы через Page Navigation, фильтры в Drawer, таблица с одной замороженной колонкой и `size="s"`.

Легаси-композиция: `PageHeader`, `PageFilterDynamic`, `BtnFilter`, `ActionPanel`, `TableLocal[fixed total expand]`, `Pagination`, `ModalSettingsTable`, `BtnExport`, `BtnRefresh`

### `list` — Список сущностей (33)

Кампании, креативы, пользователи, домены: карточки или таблица с массовыми действиями и созданием.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header`, `button` | заголовок и одно акцентное действие «создать» |
| filters | `island`, `combobox`, `segmented-control`, `input`, `drawer` | статус, владелец, поиск; редкие фильтры — в Drawer |
| toolbar | `action-panel`, `toggle-group`, `tag` | массовые действия над выбранным, переключение вида карточки / таблица, применённые фильтры |
| list | `card`, `table`, `status`, `badge`, `pagination` | карточки в Grid или таблица с `selectable`; статус — Status или Badge; страницы — Pagination |
| modals | `dialog`, `form-modal`, `entities-list-dialog` | создание — Form Modal, удаление — alertdialog с названием объекта, вставка списка ID — Entities List Dialog |

Правила:

- **must** — Одно акцентное действие на экране — создание сущности; остальные — default или ghost.
- **must** — Удаление подтверждается диалогом с конкретным объектом и последствием.
- **should** — Вид карточки / таблица переключается Toggle Group и запоминается.

Мобильный вариант: Карточки колонкой, фильтры в Drawer, массовые действия в Action Panel снизу, создание в Form Modal.

Легаси-композиция: `PageHeader`, `BtnAdd`, `BtnFilter`, `ActionPanel`, `Cards / TableLocal[checkbox fixed]`, `Pagination`, `ModalCreate*`, `ModalDelete`

### `editor` — Редактор сущности (27)

Карточка кампании, площадки, пользователя: табы разделов, острова с полями, сводка сбоку, сохранение.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header`, `button` | стрелка назад, редактируемое название (`editable`), справа — сохранить и второстепенные действия |
| tabs | `page-navigation` | разделы редактора табами; активный — из маршрута |
| main | `aside`, `island`, `stack`, `grid`, `input`, `select`, `combobox`, `textarea`, `switch`, `dualist`, `scheduler`, `file-upload`, `fields-group`, `combo`, `tag-input` | острова по смыслу с заголовком, внутри Stack полей, 2–3 колонки через Grid; тяжёлые выборы — Dualist, расписание — Scheduler, креатив — File Upload с кадрированием |
| context | `card`, `user-line`, `amount`, `status`, `copy-field` | сводка сущности справа: владелец, статус, баланс, ID и ссылки для копирования |
| footer | `button` | сохранение дублируется внизу длинной формы; сброс — default |

Правила:

- **must** — Поля сгруппированы по островам с заголовком; обязательные помечены звёздочкой, подсказка — Hint.
- **must** — Несохранённые изменения помечаются точкой `changed` у поля и предупреждением при уходе.
- **should** — Колонок полей не больше трёх; связанные поля одной строки — Fields Group.
- **must-not** — Не прятать сохранение в меню: акцентная кнопка всегда видна.

Мобильный вариант: Редактор открывается в Form Modal поверх списка: табы Page Navigation сверху, острова колонкой, сохранение в подвале.

Легаси-композиция: `PageHeader[back-link editable]`, `PageMenu`, `Island ×N`, `EntityBrief`, `BtnSave`, `DualListLive`, `GeoFilter`, `FieldsGroupPlatformFilters`, `FreezeRules`, `Snippet`

### `dashboard` — Дашборд (4)

Сводка по роли: ключевые числа, графики, новости и быстрые переходы.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header`, `input-date-range` | заголовок и период |
| summary | `grid`, `card`, `amount`, `meter`, `progress` | карточки ключевых чисел в Grid: баланс, расход, кэшбэк |
| charts | `island`, `chart`, `column-settings` | графики в островах; серии настраиваются Column Settings |
| feeds | `card`, `table`, `link` | новости, платежи, последние сущности |

Правила:

- **must** — Ключевые числа — Amount с валютой, отрицательные — цветом опасности.
- **should** — Не больше двух графиков в первом экране; остальное ниже.

Мобильный вариант: Карточки колонкой, графики во всю ширину.

Легаси-композиция: `PageHeader`, `Grid`, `WidgetInfo*`, `chart.js (Line/Doughnut)`, `WidgetNews`, `WidgetPayments`

### `auth` — Вход и регистрация (5)

Вход, регистрация, восстановление пароля, подтверждение — форма на карточке поверх тёмного фона.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| layout | `auth-layout`, `logo`, `lang-menu` | тёмный фон, логотип сверху, язык в углу |
| form | `island`, `input`, `button`, `link`, `recaptcha`, `checkbox` | поля с плавающей подписью, одно акцентное действие, ссылки на соседние сценарии |

Правила:

- **must** — Ошибка входа — под полем или Alert над кнопкой, без перезагрузки формы.
- **should** — Показ пароля — `revealable` у Input.

Мобильный вариант: Та же карточка во всю ширину.

Легаси-композиция: `layouts/auth`, `Auth (app)`, `TextInput`, `Btn`, `Link`, `Recaptcha`

### `wizard` — Мастер создания (2)

Создание сущности за несколько шагов: тип, настройки, подтверждение.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| steps | `wizard`, `steps` | полоса шагов и кнопки назад / далее |
| step | `picker`, `island`, `input`, `select`, `grid` | выбор типа плитками Picker, затем поля шага |

Правила:

- **must** — Далее недоступно, пока обязательные поля шага пусты; проверка внутри шага.
- **must** — Последний шаг показывает сводку и отправляет.

Мобильный вариант: Мастер в Form Modal.

Легаси-композиция: `StepByStep`, `Picker`, `TypePicker`, `Island`

### `chat` — Чат поддержки (1)

Лента сообщений с вложениями и полем ввода.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header`, `user-line`, `status` | собеседник и статус |
| chat | `chat` | лента с метками дня, вложениями и полем ввода; правка своих сообщений |

Правила:

- **must** — Новые сообщения отмечены разделителем; прокрутка к началу подгружает историю.

Мобильный вариант: Чат во весь экран, поле ввода закреплено снизу.

Легаси-композиция: `Chat`, `ChatHeader (app)`

### `tool` — Инструмент (2)

Расчёт или преобразование: форма параметров и результат таблицей.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header` | название инструмента |
| params | `island`, `grid`, `input`, `select`, `button` | параметры в островe, акцентная кнопка расчёта |
| result | `table`, `copy-field`, `alert` | результат таблицей с локальной сортировкой или полем для копирования |

Правила:

- **should** — Результат появляется под формой без перехода на другой экран.

Мобильный вариант: Форма и результат колонкой.

Легаси-композиция: `PageHeader`, `Island`, `Table[local]`, `Snippet`

### `settings` — Настройки (2)

Профиль, уведомления, трекер: табы разделов и острова с переключателями.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header` | заголовок |
| tabs | `page-navigation` | разделы настроек |
| sections | `island`, `switch`, `input`, `select`, `copy-field`, `button` | острова с переключателями и полями; ключи и ссылки — Copy Field |

Правила:

- **must** — Переключатели применяются сразу или с явной кнопкой сохранения — не смешивать в одном острове.

Мобильный вариант: Острова колонкой, табы Page Navigation.

Легаси-композиция: `PageHeader`, `PageMenu`, `Island`, `Checkbox switcher`, `Snippet`

### `docs` — Документация (2)

Статьи, API и справка внутри продукта.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| header | `page-header` | заголовок статьи |
| body | `island`, `code`, `description`, `link`, `feedback` | текст с примерами кода и оценкой полезности |

Правила:

- **should** — Код — компонент Code с копированием; оценка статьи — Feedback внизу.

Мобильный вариант: Колонка текста.

Легаси-композиция: `Doc (app)`, `Code / CodeArea`, `Feedback`, `redoc`

### `service` — Служебные экраны (4)

404, результат оплаты, мобильное меню «ещё», корневой layout.

| Регион | Компоненты канона | Как собирать |
| --- | --- | --- |
| body | `island`, `animation`, `link`, `button`, `alert`, `menu` | короткое сообщение, анимация и один переход |

Правила:

- **must** — Одно действие выхода со служебного экрана — ссылка на главную или назад.

Мобильный вариант: То же.

Легаси-композиция: `Lottie`, `Link`, `Btn`, `Alert`

## Правила автоматического дизайна экрана (для Studio и ИИ)

1. Определи архетип по намерению: «отчёт по …» → report, «список …» → list, «карточка / редактирование …» → editor, «создать … пошагово» → wizard, «сводка / дашборд» → dashboard, «вход / регистрация» → auth, «настройки» → settings, «чат» → chat, «калькулятор / конвертер» → tool.
2. Собери регионы архетипа в его порядке и только из его компонентов; регион можно опустить, но не добавить новый и не переставить.
3. Заголовок страницы — всегда Page Header: назад — только у редактора и вложенных экранов; действия справа — не больше трёх, одно акцентное.
4. Фильтры: период → сущности → режимы → поиск. До четырёх фильтров — в острове над данными, больше — в Drawer по кнопке; применённые фильтры показываются чипами в Action Panel.
5. Выбор сущности из справочника — Combobox (список и `loading` готовит приложение); много значений — Multi Select с `bulk` или Dualist; включить/исключить — Segmented Control или Dualist `withMode`.
6. Таблица: первая колонка — название (`rowHeader`, `fixed`), числа по `end`, итоги при метриках, `sortable` для отчётов, `selectable` для списков с массовыми действиями, `expandable` только при вложенной разбивке, Column Settings при более чем восьми колонках, `loading` до данных.
7. Формы: острова по смыслу с заголовком, поля в Stack, до трёх колонок Grid; обязательные — звёздочкой, пояснение — description, справка — Hint; несохранённое — точка `changed`.
8. Диалоги: создание — Form Modal (m), удаление — alertdialog с названием объекта, вставка списка — Entities List Dialog, настройки колонок — Column Settings, кадрирование — File Upload `crop`.
9. Состояния: до загрузки — скелетоны (Table `loading`, Skeleton), нет данных — `emptyText`, нет доступа — Alert; ошибки формы — под полем.
10. Мобильный экран — тот же архетип: подстраницы через Page Navigation, фильтры в Drawer, таблица с одной замороженной колонкой и `size="s"`, редактор в Form Modal, действия внизу.
11. Имена, тексты и локализация — из продукта (`/content.md`); компоненты — только из канона; для легаси-имени в ТЗ — карта ниже.

## Карта легаси → канон

Библиотека `components` (Vue):

| Легаси | Канон |
| --- | --- |
| `Adaptive` | `adaptive` |
| `Alert` | `alert` |
| `Amount` | `amount` |
| `Avatar` | `avatar` |
| `Btn` | `button` |
| `Chat` | `chat` |
| `Checkbox` | `checkbox` |
| `ColorInput` | `input-color` |
| `Combo` | `combo` |
| `Datepicker` | `input-date` |
| `Daterange` | `input-date-range` |
| `DragAndDrop` | `drag-and-drop` |
| `DualList` | `dualist` |
| `DualListLive` | `dualist` |
| `FlipperRowHeight` | `flipper` |
| `FormModal` | `form-modal` |
| `Grid` | `grid` |
| `Icon` | `icon` |
| `IncludeExclude` | `segmented-control` |
| `Island` | `island` |
| `Label` | `label` |
| `Link` | `link` |
| `Loader` | `loader` |
| `Lottie` | `animation` |
| `Modal` | `dialog` |
| `ModalEntitiesList` | `entities-list-dialog` |
| `ModalSettingsChart` | `column-settings` |
| `ModalSettingsTable` | `column-settings` |
| `Page` | `aside` |
| `PageHeader` | `page-header` |
| `PageMenu` | `page-navigation` |
| `Pagination` | `pagination` |
| `Picker` | `picker` |
| `PickerItem` | `picker` |
| `Popover` | `popover` |
| `RadioImageGroup` | `radio` |
| `RangeSlider` | `slider` |
| `Recaptcha` | `recaptcha` |
| `Scheduler` | `scheduler` |
| `Select` | `select` |
| `Separator` | `divider` |
| `ShortText` | `description` |
| `Snippet` | `copy-field` |
| `StatusIcon` | `indicator` |
| `StepByStep` | `wizard` |
| `Table` | `table` |
| `TableUniversal` | `table` |
| `Tag` | `tag` |
| `TextInput` | `input` |
| `TextInputSearch` | `input` |
| `Textarea` | `textarea` |
| `VerticalGrid` | `stack` |
| `Container` | — мобильный контейнер — мобильный кит ещё не перенесён |
| `Editor` | — сторонний Markdown/WYSIWYG-редактор (md-editor-v3) — подключается в продукте, в каноне Textarea и Code |

Обёртки приложения (`src/components*`) — композиции канона:

| Обёртка | Канон |
| --- | --- |
| `ActionPanel` | `action-panel` |
| `Amount` | `amount` |
| `Auth` | `auth-layout` |
| `BannerArchiveAttach` | `file-upload` |
| `BlackListActions` | `action-panel` |
| `Btn` | `button` |
| `BtnAdd` | `button` |
| `BtnExport` | `button` |
| `BtnFilter` | `button + drawer` |
| `BtnRefresh` | `button` |
| `BtnSave` | `button` |
| `BtnSort` | `button + menu` |
| `CardAudience` | `card` |
| `CardCampaign` | `card` |
| `CardCampaignAnalysis` | `card` |
| `CardCompany` | `card` |
| `CardCreative` | `card` |
| `CardDPL` | `card` |
| `CardDomain` | `card` |
| `CardSession` | `card` |
| `Cards` | `card` |
| `ChangeAvatar` | `file-upload` |
| `ChartReportView` | `chart` |
| `Checkbox` | `checkbox` |
| `Chips` | `tag` |
| `Combo` | `combo` |
| `ComboContacts` | `combo` |
| `ComboPlatformFilters` | `combo` |
| `ComboRegistrationPath` | `combo` |
| `Comment` | `island + textarea` |
| `Doc` | `code + description` |
| `DrawerChangeCampaignBalance` | `drawer` |
| `DualListLive` | `dualist` |
| `EntityBrief` | `card` |
| `FieldsGroupPlatformFilters` | `fields-group` |
| `FreezeRules` | `tag-input` |
| `FrequencyCap` | `input-number` |
| `GeoFilter` | `dualist` |
| `ImageAttach` | `file-upload` |
| `LayoutEntity` | `aside` |
| `MarkFormat` | `badge` |
| `MetricsChart` | `chart` |
| `MetricsCodes` | `copy-field` |
| `ModalCreateAudience` | `dialog` |
| `ModalCreateFinance` | `dialog` |
| `ModalCreateSmartOptlistCampaign` | `dialog` |
| `ModalDelete` | `dialog` |
| `ModalFilter` | `drawer` |
| `ModalSelectUser` | `dialog` |
| `ModalSetSourceIdBidding` | `dialog` |
| `ModalSettingsTable` | `column-settings` |
| `PageFilterDynamic` | `island + input-date-range + combobox + segmented-control` |
| `PostbackLink` | `copy-field` |
| `Select` | `select` |
| `SelectAudience` | `combobox` |
| `SelectCampaign` | `combobox` |
| `SelectCampaignGroup` | `combobox` |
| `SelectCompany` | `combobox` |
| `SelectCountry` | `combobox` |
| `SelectDsp` | `combobox` |
| `SelectEndpoint` | `combobox` |
| `SelectGroup` | `combobox` |
| `SelectInternal` | `combobox` |
| `SelectLanguage` | `combobox` |
| `SelectRole` | `combobox` |
| `SelectSite` | `combobox` |
| `SelectSupportManager` | `combobox` |
| `SelectTags` | `combobox` |
| `SelectUser` | `combobox` |
| `SelectWidget` | `combobox` |
| `Status` | `status` |
| `Subpages` | `page-navigation` |
| `TableLocal` | `table` |
| `TagCountries` | `tag` |
| `TextInput` | `input` |
| `TextInputComparator` | `input + select` |
| `TextareaArrayLike` | `textarea` |
| `TypePicker` | `picker` |
| `User` | `user-line` |
| `UserLine` | `user-line` |
| `VideoAttach` | `file-upload` |
| `WidgetCashback` | `card` |
| `WidgetFeed` | `card` |
| `WidgetInfo` | `card` |
| `WidgetInfoBalance` | `card` |
| `WidgetInfoCashback` | `card` |
| `WidgetNews` | `card` |
| `WidgetPayments` | `card` |

## Экраны

| Роут | Назначение | Архетип | Компоненты ds | Обёртки легаси | Таблица |
| --- | --- | --- | --- | --- | --- |
| `/advertiser-reports/by-campaigns` | Отчёт рекламодателя по кампаниям (с раскрытием строк, пагинацией) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCampaign, SelectCampaignGroup, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal | expand, fixed, sort, totals |
| `/advertiser-reports/by-conversion` | Отчёт рекламодателя по конверсиям (пагинация, фильтры-компараторы) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCampaign, SelectCampaignGroup, SelectCountry, SelectCreative, SelectEndpoint, SelectUser, Subpages, TableLocal, TextInputComparator | #cell, sort, totals |
| `/advertiser-reports/by-country` | Отчёт рекламодателя по странам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCampaign, SelectCampaignGroup, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/advertiser-reports/by-date` | Отчёт рекламодателя по датам: таблица с раскрытием по часам, итоги, вид «график» (ChartReportView + ModalSettingsChart) | `report` | `action-panel`, `aside`, `button`, `chart`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ChartReportView, ModalFilter, PageFilterDynamic, Select, SelectCampaign, SelectCampaignGroup, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal, TablePresets | expand, sort, totals |
| `/advertiser-reports/by-isp` | Отчёт рекламодателя по ISP | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCampaign, SelectCompany, SelectSupportManager, SelectUser, TableLocal | size, sort, totals |
| `/advertiser-reports/by-source` | Отчёт рекламодателя по источникам: действия над source id (ставка, добавить/удалить в optlist) | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `dialog`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalAddedSource, ModalDeleteSource, ModalFilter, ModalSetSourceIdBidding, PageFilterDynamic, Select, SelectCampaign, SelectEndpoint, Subpages, TableLocal, TextInputComparator | #cell, show-empty, sort, totals |
| `/advertiser-reports/by-user` | Отчёт рекламодателя по пользователям (админ) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/analysis/by-dsp` | Анализ по DSP | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectDsp, Subpages, TableLocal | #cell, fixed, sort, totals |
| `/analysis/dsp-by-days` | Анализ синхронизации DSP по дням | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectDsp, Subpages, TableLocal | #cell, fixed, sort, totals |
| `/api` | API-документация: встроенный Redoc (openapi.json backgoapi) | `service` | `aside` |  |  |
| `/article/:url*` | Просмотр статьи по URL (компонент Doc с меню документации и Feedback) | `docs` | `code`, `description`, `page-header`, `page-navigation` | Doc, Subpages |  |
| `/articles` | Статьи базы знаний (админ): таблица, фильтры, удаление | `list` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `segmented-control`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, Chips, ModalDelete, ModalSettingsTable, PageFilterDynamic, TableLocal | #cell, fixed, totals |
| `/articles/:id/:nav?` | Редактор статьи: заголовок/URL, компания, роль, Markdown-редактор (Editor) | `editor` | `aside`, `button`, `card`, `combobox`, `input`, `island`, `page-header`, `stack` | BtnSave, EntityBrief, LayoutEntity, SelectCompany, SelectRole |  |
| `/audiences` | Аудитории: карточки/таблица, модалки создания, удаления и авто-импорта UID | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `grid`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag`, `textarea` | ActionPanel, BtnAdd, BtnFilter, CardAudience, Cards, Chips, ModalCreateAudience, ModalSettingsTable, PageFilterDynamic, TableLocal | #cell, fixed |
| `/audiences-reports/by-date` | Отчёт по аудиториям по датам (таблица с итогами) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectAudience, Subpages, TableLocal | sort, totals |
| `/audiences/:id/:nav?` | Редактор аудитории: имя, пользователь, конструктор правил (RuleBuilder/RuleInput) | `editor` | `aside`, `button`, `card`, `combobox`, `grid`, `icon`, `input`, `island`, `label`, `page-header`, `select`, `stack`, `tag`, `user-line` | BtnAdd, BtnSave, EntityBrief, LayoutEntity, SelectAudience, TextInput, User |  |
| `/bff` | BFF-документация: встроенный Redoc (dev) | `service` | `aside` |  |  |
| `/blacklist-dsp` | Чёрный список источников по DSP: таблица с checkbox, массовые действия | `list` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `table` | ActionPanel, BlackListActions, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, TableLocal | #cell, checkbox, disabled-lines, sort |
| `/blacklist-endpoint` | Чёрный список источников по эндпоинтам: таблица с checkbox, массовые действия | `list` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `table` | ActionPanel, BlackListActions, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, TableLocal | #cell, checkbox, disabled-lines, sort |
| `/blacklist-selfserve` | Чёрный список источников self-serve: таблица с checkbox и оверлеем отключённых строк, массовые действия, экспорт | `list` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `table` | ActionPanel, BlackListActions, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, TableLocal | #cell, checkbox, disabled-lines, sort |
| `/campaigns` | Список рекламных кампаний (self-serve): вид карточки/таблица, фильтры, массовые действия (активность, баланс, усреднение), архив/восстановление, копирование, модалка креативов | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `pagination`, `radio`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnExport, BtnFilter, BtnRefresh, CampaignsListActions, CardCampaign, Cards, Chips, DrawerChangeCampaignBalance, ModalArchive, ModalCampaignBalanceWarning, ModalChangeCampaignBalance, ModalCopyCampaign, ModalCreativesTable, ModalRestore, ModalResultUpdateActive, ModalResultUpdateBalance, ModalSelectedCampaignsBalance, ModalSettingsTable, PageFilterDynamic, SelectUser, Subpages, TableLocal | #cell, checkbox, fixed |
| `/campaigns-analysis` | Список анализов кампаний (карточки CardCampaignAnalysis), модалка создания (кампания + эндпоинт) | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `icon`, `input`, `page-header`, `stack` | ActionPanel, Btn, BtnAdd, BtnRefresh, CardCampaignAnalysis, Cards, ModalSettingsTable, SelectCampaign, SelectEndpoint |  |
| `/campaigns-analysis/:id/:nav?` | Карточка анализа кампании: таб general с параметрами и пользователем | `editor` | `aside`, `badge`, `card`, `checkbox`, `grid`, `icon`, `island`, `page-header`, `page-navigation`, `stack`, `user-line` | Checkbox, EntityBrief, LayoutEntity, MarkFormat, User, UserLine |  |
| `/campaigns/:id/:nav?` | Редактор кампании: 12 табов (general, filters, fast-filters, audiences-filter, opt-lists, rules, schedule, source-id-bidding, daily-spend-limits, push-other, experimental, _53), правая колонка с балансом, пользователем, тегами/гео, креативами, комментарием | `editor` | `alert`, `amount`, `aside`, `badge`, `button`, `card`, `checkbox`, `combo`, `combobox`, `copy-field`, `description`, `dialog`, `divider`, `drawer`, `dualist`, `entities-list-dialog`, `fields-group`, `grid`, `icon`, `indicator`, `input`, `input-number`, `island`, `link`, `page-header`, `page-navigation`, `pagination`, `scheduler`, `segmented-control`, `select`, `stack`, `tag`, `tag-input`, `textarea`, `user-line` | Btn, BtnRestore, BtnSave, Checkbox, ComboPlatformFilters, Comment, DrawerChangeCampaignBalance, DualListLive, EntityBrief, FieldsGroupPlatformFilters, FreezeRules, FrequencyCap, GeoFilter, LayoutEntity, MarkFormat, ModalChangeCampaignBalance, ModalCreateSmartOptlistCampaign, Select, SelectCampaignGroup, SelectGroup, SelectLanguage, SelectTag, SelectTags, TagCountries, TextInput, User |  |
| `/campaigns/create` | Мастер создания кампании: шаги adFormat → user → geo → price → balance → postback (useCreationMaster, Picker форматов) | `wizard` | `alert`, `aside`, `avatar`, `button`, `checkbox`, `combobox`, `copy-field`, `dialog`, `divider`, `dualist`, `grid`, `input`, `island`, `page-header`, `page-navigation`, `picker`, `stack` | Btn, Checkbox, GeoFilter, LayoutEntity, ModalSelectUser, PostbackLink, SelectUser, TextInput |  |
| `/cashback` | Кэшбэк пользователей: таблица с checkbox, массовое обновление уровней (модалка) | `list` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `dialog`, `drawer`, `grid`, `input-date-range`, `island`, `loader`, `menu`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnFilter, BtnSort, Chips, PageFilterDynamic, TableLocal | #cell, checkbox, fixed, size, wide |
| `/chat/:id?` | Чат поддержки: меню чатов (ChatMenu), окно сообщений (lib Chat), инфо о пользователе, поиск, удаление | `chat` | `alert`, `aside`, `avatar`, `button`, `chat`, `combobox`, `dialog`, `divider`, `grid`, `icon`, `input`, `island`, `loader`, `page-header`, `stack` | ModalDelete, SelectUser |  |
| `/companies` | Компании (white-label сети): карточки, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `dialog`, `icon`, `input`, `page-header`, `pagination`, `stack`, `tag` | ActionPanel, BtnAdd, CardCompany, Cards, Chips, ModalDelete, ModalSettingsTable |  |
| `/companies/:id/:nav?` | Редактор компании: 11 табов (general, settings, themes с превью десктоп/моб, email, registration, self_serve, support_info, tracking_code, default_domains, max_prices, traffic_check) | `editor` | `aside`, `button`, `checkbox`, `combo`, `divider`, `file-upload`, `grid`, `input`, `island`, `label`, `page-header`, `page-navigation`, `select`, `stack`, `tag-input`, `textarea` | BtnSave, Checkbox, ComboContacts, ComboRegistrationPath, FreezeRules, ImageAttach, LayoutEntity, Select, TextInput, TextareaArrayLike |  |
| `/creatives` | Список креативов: карточки/таблица, фильтры, массовые действия (статусы, активность, URL), копирование в кампанию, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardCreative, Cards, Chips, CreativesListActions, ModalCopyCreativeToCampaign, ModalCreateCreative, ModalDelete, ModalSettingsTable, ModalUpdateCreativesUrls, PageFilterDynamic, SelectCampaign, Subpages, TableLocal | #cell, checkbox, fixed |
| `/creatives/:id/:nav?` | Редактор креатива: форма по типу трафика (_trafficTypes: banner, push, inpage_push, native, pop, video, interstitial, calendar_ios, tg_inpage_push, tg_rewarded, tg_video), превью, проверка домена, виджет кампании, загрузка изображений/видео/ZIP | `editor` | `alert`, `amount`, `aside`, `badge`, `button`, `card`, `combobox`, `divider`, `entities-list-dialog`, `file-upload`, `grid`, `input`, `island`, `page-header`, `segmented-control`, `select`, `stack`, `status`, `tag`, `textarea`, `user-line` | BannerArchiveAttach, BtnSave, EntityBrief, ImageAttach, LayoutEntity, MarkFormat, ModalChangeCampaignBalance, Select, SelectInternal, SelectLanguage, SelectTags, Status, TagCountries, User, VideoAttach |  |
| `/dashboard` | Дашборд — стартовый экран, по роли рендерит один из пяти экранов (_screens: platform-admin, advert-selfserve, advert-DSP, direct-publisher, default): виджеты баланса/кэшбэка/новостей/платежей/ленты, графики chart.js (line/donut), онбординг «Getting started», реферальный блок | `dashboard` | `amount`, `aside`, `badge`, `button`, `card`, `combobox`, `dialog`, `divider`, `grid`, `icon`, `island`, `loader`, `stack` | Amount, MarkFormat, SelectCampaign, WidgetCashback, WidgetFeed, WidgetInfo, WidgetInfoBalance, WidgetInfoCashback, WidgetNews, WidgetPayments |  |
| `/decode-url` | Инструмент декодирования URL: Textarea → таблица разобранных параметров | `tool` | `aside`, `button`, `grid`, `island`, `page-header`, `stack`, `table`, `textarea` | TableLocal | #cell, fixed, size, wide |
| `/demand-price-limits` | Лимиты цен спроса (DPL): карточки, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `grid`, `page-header`, `stack` | ActionPanel, BtnAdd, CardDPL, Cards |  |
| `/demand-price-limits/:id/:nav?` | Редактор DPL: поля цен, Combo условий, Snippet | `editor` | `aside`, `button`, `card`, `checkbox`, `combo`, `copy-field`, `grid`, `input`, `island`, `label`, `page-header`, `stack` | BtnSave, Combo, EntityBrief, LayoutEntity, TextInput |  |
| `/docs/:url*` | Документация по URL (компонент Doc) | `docs` | `code`, `description` | Doc |  |
| `/domains` | Домены: карточки, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `dialog`, `icon`, `input`, `page-header`, `pagination`, `stack`, `tag` | ActionPanel, BtnAdd, CardDomain, Cards, Chips, ModalDelete, ModalSettingsTable |  |
| `/domains/:id/:nav?` | Редактор домена: статус, SSL, проверка (Island check) | `editor` | `aside`, `button`, `card`, `checkbox`, `icon`, `input`, `island`, `page-header`, `select`, `stack`, `status`, `textarea` | BtnSave, Checkbox, Comment, EntityBrief, LayoutEntity, Select, Status, TextInput |  |
| `/dsp` | DSP (покупатели трафика): карточки/таблица, создание, копирование, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardDSP, CardDsp, Cards, Chips, ModalCreateDSP, ModalDSPCopy, ModalDelete, ModalSettingsTable, PageFilterDynamic, SelectUser, TableLocal | #cell, fixed |
| `/dsp-analysis` | Анализ DSP: карточки, модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `icon`, `input`, `page-header`, `stack` | ActionPanel, Btn, BtnAdd, BtnRefresh, CardDSPAnalysis, CardDspAnalysis, Cards, ModalSettingsTable, SelectDsp, SelectEndpoint |  |
| `/dsp-analysis/:id/:nav?` | Карточка анализа DSP: таб general | `editor` | `aside`, `badge`, `card`, `checkbox`, `grid`, `icon`, `island`, `page-header`, `page-navigation`, `stack`, `user-line` | Checkbox, EntityBrief, LayoutEntity, MarkFormat, User, UserLine |  |
| `/dsp-dashboard` | Дашборд DSP (таблица с итогами) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectTags, TableLocal | #cell, fixed, sort, totals |
| `/dsp-metrics` | Метрики DSP: графики кодов ответов | `dashboard` | `action-panel`, `alert`, `aside`, `button`, `chart`, `checkbox`, `combobox`, `copy-field`, `drawer`, `grid`, `input-date-range`, `island`, `page-header`, `segmented-control`, `select`, `stack` | ActionPanel, BtnFilter, Checkbox, MetricsChart, MetricsCodes, ModalFilter, PageFilterDynamic, Select, SelectDsp |  |
| `/dsp-reports/by-country` | Отчёт DSP по странам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectDsp, Subpages, TableLocal | sort, totals |
| `/dsp-reports/by-date` | Отчёт DSP по датам (раскрытие, график) | `report` | `action-panel`, `aside`, `button`, `chart`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ChartReportView, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectDsp, SelectUser, Subpages, TableLocal | expand, sort, totals |
| `/dsp-reports/by-logs` | Отчёт DSP по логам (dev/prod) | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectDsp, Subpages, TableLocal | sort, totals |
| `/dsp-reports/by-source` | Отчёт DSP по источникам | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectDsp, Subpages, TableLocal, TextInputComparator | sort, totals |
| `/dsp-reports/by-user` | Отчёт DSP по пользователям | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/dsp-time-metrics` | Метрики времени ответа DSP (график) | `dashboard` | `action-panel`, `alert`, `aside`, `button`, `chart`, `checkbox`, `combobox`, `drawer`, `grid`, `input-date-range`, `island`, `page-header`, `segmented-control`, `select`, `stack` | ActionPanel, BtnFilter, MetricsChart, ModalFilter, PageFilterDynamic, SelectDsp |  |
| `/dsp/:id/:nav?` | Редактор DSP: 16 табов (general, request, response, open-rtb, hosts, bidfloor, api-integration, platform-filters, fast-filters, opt-lists, push-other, referrer-list, spend-limits, sync-stat, _50), баланс, проверка (ModalCheck) | `editor` | `alert`, `amount`, `aside`, `button`, `card`, `checkbox`, `combo`, `combobox`, `copy-field`, `dialog`, `divider`, `dualist`, `entities-list-dialog`, `fields-group`, `grid`, `icon`, `input`, `input-number`, `island`, `page-header`, `page-navigation`, `picker`, `segmented-control`, `select`, `stack`, `status`, `textarea`, `user-line` | Btn, BtnSave, Checkbox, ComboPlatformFilters, Comment, DrawerChangeDspBalance, DualListLive, EntityBrief, FieldsGroupPlatformFilters, FrequencyCap, GeoFilter, LayoutEntity, ModalChangeDspBalance, Select, SelectOrtbCategory, SelectTags, Status, TextInput, TextareaArrayLike, TextareaObjectLike, TypePicker, User |  |
| `/endpoints` | Эндпоинты (источники трафика паблишера): карточки/таблица, фильтры, копирование, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardEndpoint, Cards, Chips, ModalDelete, ModalEndpointCopy, ModalSettingsTable, PageFilterDynamic, TableLocal | #cell, fixed |
| `/endpoints-analysis` | Анализ эндпоинтов: карточки, модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `icon`, `input`, `page-header`, `stack` | ActionPanel, Btn, BtnAdd, BtnRefresh, CardEndpointAnalysis, Cards, ModalSettingsTable, SelectEndpoint |  |
| `/endpoints-analysis/:id/:nav?` | Карточка анализа эндпоинта: таб general + карточки DSP (DspCard) | `editor` | `aside`, `badge`, `card`, `grid`, `icon`, `island`, `page-header`, `page-navigation`, `select`, `stack`, `user-line` | Chip, EntityBrief, LayoutEntity, MarkFormat, User, UserLine |  |
| `/endpoints-dashboard` | Дашборд эндпоинтов (таблица с итогами и фильтрами) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, TableLocal | #cell, fixed, size, sort, totals |
| `/endpoints-dashboard-inactive` | Дашборд неактивных эндпоинтов | `report` | `action-panel`, `aside`, `button`, `column-settings`, `page-header`, `table` | ActionPanel, BtnRefresh, TableLocal | #cell, fixed, size, sort, totals |
| `/endpoints-metrics` | Метрики эндпоинтов: графики кодов ответов (MetricsChart, MetricsCodes) | `dashboard` | `action-panel`, `alert`, `aside`, `button`, `chart`, `checkbox`, `combobox`, `copy-field`, `drawer`, `grid`, `input-date-range`, `island`, `page-header`, `segmented-control`, `select`, `stack` | ActionPanel, BtnFilter, Checkbox, MetricsChart, MetricsCodes, ModalFilter, PageFilterDynamic, Select, SelectEndpoint |  |
| `/endpoints/:id/:nav?` | Редактор эндпоинта: 18 табов (general, filters, fast-filters, opt-lists, hosts, api-integration, response-request/open-rtb, cloaking, creatives-check, session-storage, source-id-autoblock, traffic-check, referrer-list, other, _50…) | `editor` | `alert`, `aside`, `button`, `card`, `checkbox`, `combo`, `combobox`, `copy-field`, `divider`, `dualist`, `entities-list-dialog`, `fields-group`, `grid`, `icon`, `input`, `island`, `label`, `page-header`, `page-navigation`, `picker`, `segmented-control`, `select`, `stack`, `status`, `textarea`, `user-line` | BtnSave, Checkbox, Combo, ComboPlatformFilters, Comment, DualListLive, EntityBrief, FieldsGroupPlatformFilters, GeoFilter, LayoutEntity, ModalEndpointTemplate, Select, SelectInternal, SelectTags, Status, TextInput, TextareaArrayLike, TypePicker, User |  |
| `/endpoints/create` | Мастер создания эндпоинта: шаги adFormat → user → platform → _50 (Picker, RangeSlider, IncludeExclude) | `wizard` | `alert`, `aside`, `avatar`, `badge`, `button`, `checkbox`, `combobox`, `dialog`, `divider`, `fields-group`, `grid`, `input`, `island`, `page-header`, `page-navigation`, `picker`, `segmented-control`, `slider`, `stack` | FieldsGroupPlatformFilters, LayoutEntity, MarkFormat, ModalSelectUser, SelectCompany, SelectUser, TextInput |  |
| `/estimation-tools/by-geo` | Инструмент оценки объёма трафика по гео (локальная таблица, фильтры) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectCountryGroup, Subpages, TableLocal | #cell, local, sort |
| `/estimation-tools/by-traffic` | Инструмент оценки по типу трафика (локальная таблица, фильтры) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectCountry, SelectCountryGroup, Subpages, TableLocal | #cell, local, sort |
| `/finance` | Финансы: виджеты баланса/кэшбэка, список операций (карточки/таблица), пополнение (способы оплаты), запрос выплаты | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `grid`, `input-date-range`, `island`, `menu`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnExport, BtnFilter, BtnRefresh, BtnSort, CardFinance, Cards, Chips, ModalCreateFinance, ModalDelete, ModalFinancePaymentMethods, ModalFinanceRequest, PageFilterDynamic, TableLocal, WidgetInfoBalance, WidgetInfoCashback | #cell, fixed |
| `/finance/:id/:nav?` | Редактор фин. операции: статус, пользователь, сумма, дата, комментарий | `editor` | `aside`, `button`, `checkbox`, `grid`, `input`, `input-date`, `island`, `page-header`, `select`, `stack`, `status`, `textarea`, `user-line` | BtnSave, Checkbox, Comment, LayoutEntity, Status, User |  |
| `/finance/fail` | Страница неуспешной оплаты | `service` | `aside`, `button`, `grid`, `stack` | Btn, LayoutEntity |  |
| `/finance/success` | Страница успешной оплаты | `service` | `aside`, `button`, `grid`, `stack` | Btn, LayoutEntity |  |
| `/login` | Вход: email/пароль, Recaptcha, ссылки на восстановление/регистрацию | `auth` | `auth-layout`, `button`, `form-modal`, `input`, `link`, `recaptcha`, `stack` | Auth, Btn, Link, TextInput |  |
| `/lp` | Лендинги: карточки, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `page-header`, `pagination`, `stack` | ActionPanel, BtnAdd, CardLP, Cards, ModalDelete |  |
| `/lp-reports/by-country` | Отчёт по лендингам по странам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCountry, SelectLP, SelectUser, Subpages, TableLocal, TextInput | #cell, fixed, sort, totals |
| `/lp-reports/by-date` | Отчёт по лендингам по датам (раскрытие) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCountry, SelectLP, SelectUser, Subpages, TableLocal, TextInput | #cell, expand, fixed, sort, totals |
| `/lp/:id` | Редактор лендинга: шаблон, эндпоинты, расписание (Scheduler), код (Snippet) | `editor` | `aside`, `button`, `card`, `checkbox`, `combobox`, `copy-field`, `input`, `island`, `page-header`, `scheduler`, `stack`, `textarea`, `user-line` | BtnSave, ComboGroupEndpoints, EntityBrief, FieldsGroupEndpoints, LayoutEntity, SelectEndpoint, SelectLPT, TextInput, User |  |
| `/lpt` | Шаблоны лендингов: карточки | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `page-header`, `stack` | ActionPanel, BtnAdd, CardLPT, Cards, ModalDelete |  |
| `/lpt/:id` | Редактор шаблона лендинга: имя, превью (ImageAttach), архив (FileAttach) | `editor` | `aside`, `button`, `card`, `file-upload`, `input`, `island`, `page-header`, `stack`, `textarea` | BtnSave, EntityBrief, FileAttach, ImageAttach, LayoutEntity, TextInput |  |
| `/news` | Новости (админ): список | `list` | `alert`, `aside`, `button`, `card`, `page-header`, `stack` | BtnAdd, Cards |  |
| `/news/:id/:nav?` | Редактор новости: заголовок, тип, дата (Datepicker), картинка, Markdown (Editor) | `editor` | `aside`, `badge`, `button`, `checkbox`, `file-upload`, `grid`, `icon`, `input`, `input-date`, `island`, `page-header`, `select`, `stack` | BtnSave, ImageAttach, MarkFormat |  |
| `/optlists` | Списки оптимизации (optlists): карточки/таблица, фильтры, модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardOptlist, Cards, Chip, ChipUser, Chips, ModalCreateOptlist, ModalDelete, ModalSettingsTable, PageFilterDynamic, SelectUser, Subpages, TableLocal | #cell, fixed |
| `/optlists/:id/:nav?` | Редактор optlist: секции ip, isp, sourceID, originalSourceID (DualList, IncludeExclude, Textarea) | `editor` | `alert`, `aside`, `button`, `checkbox`, `combobox`, `divider`, `dualist`, `grid`, `input`, `island`, `page-header`, `segmented-control`, `select`, `stack`, `textarea`, `user-line` | BtnSave, LayoutEntity, SelectUser, TextInput, User |  |
| `/password-reset/:token` | Новый пароль по токену | `auth` | `auth-layout`, `button`, `form-modal`, `input`, `stack` | Auth, Btn, TextInput |  |
| `/payment-systems` | Платёжные системы: карточки, фильтры, модалка создания | `list` | `action-panel`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `grid`, `icon`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `select`, `stack`, `tag` | ActionPanel, BtnAdd, BtnFilter, CardPayment, Cards, Chips, ModalDelete, ModalSettingsTable, PageFilterDynamic, Select |  |
| `/payment-systems/:id/:nav?` | Редактор платёжной системы: табы general, settings, инструкция (Manual), логотип | `editor` | `aside`, `button`, `card`, `checkbox`, `combobox`, `copy-field`, `divider`, `file-upload`, `grid`, `input`, `island`, `link`, `page-header`, `page-navigation`, `stack`, `textarea` | BtnSave, EntityBrief, ImageAttach, LayoutEntity, SelectCompany, TextInput |  |
| `/publisher-reports/by-country` | Отчёт паблишера по странам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectEndpoint, SelectUser, Subpages, TableLocal | sort, totals |
| `/publisher-reports/by-date` | Отчёт паблишера по датам (раскрытие по часам, график) | `report` | `action-panel`, `aside`, `button`, `chart`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ChartReportView, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectEndpoint, SelectUser, Subpages, TableLocal | expand, sort, totals |
| `/publisher-reports/by-domain` | Отчёт паблишера по доменам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectEndpoint, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/publisher-reports/by-rejects` | Отчёт паблишера по отклонённым запросам | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectEndpoint, SelectUser, Subpages, TableLocal | sort, totals |
| `/publisher-reports/by-source` | Отчёт паблишера по источникам | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, SelectUser, Subpages, TableLocal, TextInputComparator | sort, totals |
| `/publisher-reports/by-user` | Отчёт паблишера по пользователям | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCompany, SelectSupportManager, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/recovery` | Восстановление пароля (email) | `auth` | `auth-layout`, `button`, `form-modal`, `grid`, `icon`, `input`, `link`, `stack` | Auth, Btn, TextInput |  |
| `/referral/finance` | Реферальные финансы: карточки/таблица выплат, создание, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `input-date-range`, `island`, `menu`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, BtnSort, CardReferralFinance, Cards, Chips, ModalCreateFinance, ModalDelete, PageFilterDynamic, TableLocal | #cell, fixed |
| `/referral/finance/:id/:nav?` | Редактор реферальной фин. операции (сумма, комментарий, пользователь) | `editor` | `aside`, `button`, `input`, `island`, `page-header`, `stack`, `textarea`, `user-line` | BtnSave, LayoutEntity, TextInput, User |  |
| `/referral/report` | Реферальный отчёт пользователя | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, TableLocal | size, sort, totals |
| `/referral/report-admin` | Реферальный отчёт (админ) | `report` | `action-panel`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `table` | ActionPanel, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectUser, TableLocal | #cell, size, sort, totals |
| `/registration/:type` | Регистрация по типу (:type): роль, контакты, согласие, Recaptcha; на мобильном — StepByStep | `auth` | `auth-layout`, `button`, `checkbox`, `combo`, `divider`, `form-modal`, `grid`, `input`, `link`, `recaptcha`, `stack`, `wizard` | Auth, Btn, ComboContacts, ComboContactsAuth, Link, RoleSwitcher, SelectRegistrationRole, TextInput |  |
| `/registration/confirm/:token` | Подтверждение регистрации по токену | `auth` | `auth-layout`, `divider`, `island`, `link`, `stack` | Auth, Link |  |
| `/reports/campaigns-by-endpoint` | Кросс-отчёт кампании по эндпоинту | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, Subpages, TableLocal, TextInputComparator | #cell, fixed, sort, totals |
| `/reports/dsp-by-endpoint` | Кросс-отчёт DSP по эндпоинту | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectEndpoint, Subpages, TableLocal | #cell, fixed, sort, totals |
| `/reports/endpoints-by-campaign` | Кросс-отчёт эндпоинты по кампании | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCampaign, Subpages, TableLocal, TextInputComparator | #cell, fixed, sort, totals |
| `/reports/endpoints-by-dsp` | Кросс-отчёт эндпоинты по DSP | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectDsp, Subpages, TableLocal | #cell, fixed, sort, totals |
| `/roles` | Роли: карточки | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `page-header`, `stack` | ActionPanel, BtnAdd, CardRoles, Cards, ModalDelete |  |
| `/roles/:id/:nav?` | Редактор роли: табы general и permissions (группы прав, IncludeExclude) | `editor` | `aside`, `button`, `card`, `input`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `stack`, `textarea` | BtnSave, EntityBrief, LayoutEntity, Select, TextInput |  |
| `/settings/:nav?` | Настройки профиля: табы general (аватар, контакты, реквизиты, Telegram), change-password, notifications, referral, sessions (карточки сессий), payment (моб.) | `settings` | `aside`, `button`, `card`, `checkbox`, `combo`, `combobox`, `copy-field`, `dialog`, `divider`, `file-upload`, `grid`, `icon`, `input`, `island`, `page-header`, `page-navigation`, `stack` | Btn, BtnSave, CardSession, ChangeAvatar, ComboContacts, ComboPayments, FieldsGroupContacts, FieldsGroupPaymentDetails, LayoutEntity, SelectLanguage, TextInput, UserInfo, WidgetInfoBalance, WidgetInfoCashback |  |
| `/sites` | Сайты паблишера: карточки/таблица, модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardSite, Cards, Chips, ModalCreateSite, ModalDelete, ModalSettingsTable, PageFilterDynamic, SelectUser, TableLocal | #cell, fixed |
| `/sites/:id/:nav?` | Редактор сайта: таб general, статус, код подключения (Snippet) | `editor` | `alert`, `aside`, `button`, `card`, `copy-field`, `description`, `grid`, `input`, `island`, `page-header`, `select`, `stack`, `status`, `textarea`, `user-line` | Btn, BtnSave, EntityBrief, LayoutEntity, Select, Status, TextInput, User |  |
| `/smart-optlists` | Умные списки оптимизации: карточки/таблица, модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnRefresh, CardSmartOptlist, Cards, Chips, ModalCreateSmartOptlist, ModalDelete, ModalSettingsTable, PageFilterDynamic, Subpages, TableLocal | #cell, fixed |
| `/smart-optlists/:id/:nav?` | Редактор smart-optlist: имя, список источников (SourceList) и кандидаты (SourceCandidates) | `editor` | `aside`, `button`, `input`, `island`, `page-header`, `stack`, `user-line` | BtnSave, LayoutEntity, SourceCandidates, SourceList, TextInput, User |  |
| `/sourceid-converter` | Инструмент конвертации source id: форма (эндпоинт, пользователь, период, IncludeExclude, список) + результат в Table | `tool` | `alert`, `aside`, `button`, `combobox`, `grid`, `input-date-range`, `island`, `page-header`, `segmented-control`, `stack`, `table`, `textarea` | BtnExport, SelectEndpoint, SelectUser, TextareaArrayLike |  |
| `/tag-groups` | Группы тегов: карточки | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `page-header`, `stack` | ActionPanel, BtnAdd, CardTagGroup, Cards, ModalDelete |  |
| `/tag-groups/:id/:nav?` | Редактор группы тегов | `editor` | `aside`, `button`, `card`, `input`, `island`, `page-header`, `page-navigation`, `stack` | BtnSave, EntityBrief, LayoutEntity, TextInput |  |
| `/tags` | Теги: карточки, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `dialog`, `page-header`, `stack` | ActionPanel, BtnAdd, CardTags, Cards, ModalDelete |  |
| `/tags/:id/:nav?` | Редактор тега (имя, группа) | `editor` | `aside`, `button`, `card`, `input`, `island`, `page-header`, `page-navigation`, `select`, `stack` | BtnSave, EntityBrief, LayoutEntity, Select, TextInput |  |
| `/tch/common` | TCH common (dev): сводная таблица (TableSimple) с фильтрами, IncludeExclude | `report` | `action-panel`, `alert`, `aside`, `button`, `combobox`, `drawer`, `grid`, `input`, `input-date-range`, `island`, `page-header`, `segmented-control`, `stack` | ActionPanel, BtnFilter, ModalFilter, PageFilterDynamic, TextInput |  |
| `/tch/common-dev` | TCH common-dev: сводная таблица (TableSimple) с фильтрами, wide-Island | `report` | `alert`, `aside`, `button`, `combobox`, `drawer`, `grid`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `select`, `stack` | BtnFilter, PageFilterDynamic |  |
| `/tch/endpoints-report` | Отчёт Traffic Check по эндпоинтам | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `segmented-control`, `table` | ActionPanel, BtnFilter, BtnRefresh, PageFilterDynamic, TableLocal | #cell, size, sort, totals |
| `/tch/links` | Traffic Check: список ссылок (карточки/таблица), модалка создания | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `grid`, `icon`, `input`, `page-header`, `pagination`, `select`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnRefresh, CardTchLink, Cards, Chips, ModalDelete, ModalSettingsTable, Select, SelectUser, TableLocal | #cell, fixed |
| `/tch/links/:id/:nav?` | Редактор TCH-ссылки: табы general, ivt-settings, captcha | `editor` | `aside`, `button`, `card`, `checkbox`, `copy-field`, `grid`, `input`, `island`, `page-header`, `page-navigation`, `select`, `stack`, `status`, `textarea`, `user-line` | BtnSave, Checkbox, Comment, EntityBrief, LayoutEntity, Select, Status, TextInput, User |  |
| `/tch/report` | Отчёт Traffic Check по ссылкам | `report` | `action-panel`, `alert`, `aside`, `button`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, TableLocal | #cell, size, sort, totals |
| `/tracker` | Трекер конверсий: табы postback_settings, link_builder, coversion_tracking, conversion_test (PostbackLink) | `settings` | `aside`, `button`, `copy-field`, `grid`, `icon`, `island`, `page-header`, `page-navigation`, `stack`, `textarea` | BtnSave, PostbackLink |  |
| `/ureport` | Универсальный отчёт-конструктор: TableUniversal, DragAndDrop порядка колонок, модальные фильтры (pinnable), высота строк | `report` | `action-panel`, `alert`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `divider`, `drag-and-drop`, `flipper`, `grid`, `input-date-range`, `page-header`, `select`, `table` | ActionPanel, PageModalFilter, SelectCampaign, SelectCountry, SelectDsp, SelectEndpoint |  |
| `/userlogs` | Логи пользователей (карточки), фильтры | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `combobox`, `drawer`, `input-date-range`, `island`, `menu`, `page-header`, `pagination`, `segmented-control`, `stack`, `tag` | ActionPanel, BtnFilter, BtnSort, CardUserlog, Cards, Chips, PageFilterDynamic |  |
| `/users` | Пользователи: карточки/таблица, фильтры, вход под пользователем, удаление | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardUser, Cards, Chips, ModalDelete, ModalSettingsTable, PageFilterDynamic, TableLocal | #cell, fixed |
| `/users/:id/:nav?` | Редактор пользователя: 10 табов (general, other, max_prices, fast-filter, referral, widget-endpoints, sessions, user-logs, finance-logs, _24), аватар, контакты, реквизиты | `editor` | `alert`, `amount`, `aside`, `button`, `card`, `checkbox`, `combo`, `combobox`, `copy-field`, `dialog`, `divider`, `dualist`, `entities-list-dialog`, `file-upload`, `grid`, `input`, `input-date`, `island`, `label`, `page-header`, `page-navigation`, `popover`, `segmented-control`, `select`, `stack`, `status`, `tag`, `textarea`, `user-line` | BtnSave, CardSession, CardUserFinance, CardUserLogs, ChangeAvatar, Checkbox, ComboContacts, ComboPaymentDetails, ComboPayments, Comment, DualListLive, EntityBrief, LayoutEntity, ModalChangeCashback, Select, SelectCompany, SelectEndpoint, SelectSupportManager, SelectUser, Status, TextInput, User |  |
| `/widgets` | Виджеты (рекламные блоки сайтов): карточки/таблица, фильтры | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `column-settings`, `combobox`, `dialog`, `drawer`, `icon`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `stack`, `table`, `tag` | ActionPanel, BtnAdd, BtnFilter, BtnRefresh, CardWidget, Cards, Chips, ModalDelete, ModalSettingsTable, PageFilterDynamic, TableLocal | #cell, fixed |
| `/widgets-reports/by-country` | Отчёт по виджетам по странам | `report` | `action-panel`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectSite, SelectWidget, Subpages, TableLocal | sort, totals |
| `/widgets-reports/by-date/:date?` | Отчёт по виджетам по датам (раскрытие) | `report` | `action-panel`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectSite, SelectWidget, Subpages, TableLocal | expand, sort, totals |
| `/widgets-reports/by-site` | Отчёт по виджетам по сайтам | `report` | `action-panel`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectWidget, Subpages, TableLocal | fixed, sort, totals |
| `/widgets-reports/by-source` | Отчёт по виджетам по источникам | `report` | `action-panel`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `loader`, `page-header`, `page-navigation`, `pagination`, `segmented-control`, `select`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, Select, SelectCompany, SelectSite, SelectWidget, Subpages, TableLocal | sort, totals |
| `/widgets-reports/by-widget` | Отчёт по виджетам | `report` | `action-panel`, `aside`, `button`, `checkbox`, `column-settings`, `combobox`, `drawer`, `input-date-range`, `island`, `page-header`, `page-navigation`, `segmented-control`, `table` | ActionPanel, BtnExport, BtnFilter, BtnRefresh, ModalFilter, PageFilterDynamic, SelectCompany, SelectSite, SelectUser, Subpages, TableLocal | fixed, sort, totals |
| `/widgets/:id/:nav?` | Редактор виджета: выбор формата (RadioImageGroup), табы general/settings, настройки по типу (banner, inpage, native, popunder, push, video), ColorInput, код вставки | `editor` | `alert`, `aside`, `button`, `card`, `checkbox`, `combobox`, `copy-field`, `divider`, `grid`, `icon`, `input`, `input-color`, `island`, `page-header`, `page-navigation`, `radio`, `select`, `stack`, `status`, `textarea` | Btn, BtnSave, EntityBrief, LayoutEntity, Select, SelectEndpoint, SelectUser, Status, TextInput, UserCard |  |
| `/worklogs` | Рабочие логи (карточки CardWorklog с модалкой деталей), фильтры | `list` | `action-panel`, `alert`, `aside`, `button`, `card`, `combobox`, `drawer`, `input`, `input-date-range`, `island`, `page-header`, `pagination`, `segmented-control`, `select`, `stack` | ActionPanel, BtnFilter, CardWorklog, Cards, ModalFilter, PageFilterDynamic, Select, SelectUser |  |

## Что вне канона на экранах

- Графики дашборда и отчётов — `chart.js` (22 компонента приложения); в каноне `chart` — плейсхолдер серий, библиотека графиков подключается продуктом.
- `Editor` (md-editor-v3) на статьях и новостях — сторонний редактор; канон даёт Textarea и Code.
- Мобильный кит (`components/mobile`, 29) — отдельная волна переноса; до неё мобильные варианты собираются из тех же компонентов канона по правилам архетипа.
- Живые обёртки (`SelectLive`, `DualListLive`, `TableLocal`) — слой данных продукта, в канон не входят: компоненты получают готовые `options` и `rows`, состояние `loading` и сообщают `onsort`/`onselect`; подгрузка страниц, серверный поиск, локальная фильтрация и экспорт живут в приложении.

