# Карта: Уведомления (forbion, мобильная веб-версия) Снято 2026-07-12. Метод по mail/078: структура берётся ИЗ КОДА (апстрим `nextcloud/notifications`, компоненты `NotificationsApp.vue` / `NotificationItem.vue` / `ActionButton.vue` / `IconNotification.vue`; на forbion версия 5.0.0-dev.0 — компоненты стабильны между версиями), живой мобильный web forbion (вьюпорт 390px, аккаунт `cloude`, строго read-only по mail/073) — для визуальной сверки размещения и порядка. Живой аккаунт `cloude` на момент съёмки имел **пустую ленту** (empty-state), поэтому структура элемента уведомления и действий снята с кода, а не с экрана. Пишущих кнопок («Скрыть», «Скрыть все», action-кнопки) НЕ нажимал — dismiss и выполнение действий это записи (DELETE / произвольный HTTP-метод), а аккаунт реальный рабочий. Уведомления — НЕ отдельное приложение (нет пункта в шторке приложений и своего URL-роута), а глобальный **дропдаун-лента в шапке** (компонент `NotificationsApp`, монтируется в `#notifications`). ## Вход В мобильной вёрстке forbion иконка-триггер (колокольчик) живёт в **шторке приложений**, а не на плавающей нижней панели. Путь: - Нижняя панель шелла → `≡` («три полоски», `#open-header-menu-mobile`) открывает шторку `app-menu--mobile`. - В шторке — слот `#mobile-header-notifications` (класс `f7-mobile-menu-control-slot`, `mobile-bottom-slot--overlay`) с кнопкой-колокольчиком (`.notifications-button`, `aria-label="Уведомления"`, `aria-expanded`). - Нижняя плавающая панель (общая, зона лида, для ориентира): `<`/`>` (сайдбар-навигация, `#mobile-header-left-sidebar-button`) · конверт → Почта (`/apps/mail/`) · «карточки» → Задачи (`/apps/tasks/`) · камера → Конференции (`/apps/spreed/`) · `≡` → шторка приложений. ## Триггер (колокольчик) — `IconNotification` **Вид:** иконка «колокол». Индикатор состояния (`showDot`): - точка-бейдж показывается, когда `notifications.length !== 0` **или** когда браузерные разрешения ещё не запрошены (`webNotificationsGranted === null`); - значок-предупреждение (`showWarning`) — когда push-уведомления задросселированы политикой честного использования (`hasThrottledPushNotifications`). **Действие:** тап → раскрывает дропдаун-ленту (`aria-expanded` false→true), эмит `@opened → onOpen` (подгрузка/пометка ленты активной). Повторный тап или клик вне (кроме `.popover`) — закрывает. ## Экран: Лента уведомлений (дропдаун `NcHeaderMenu`, класс `header-menu`) Контейнер `.notification-container` внутри `.header-menu__content`. Тайтл шапки в мобильной теме — «Уведомления» (`.tooltip-header--notifications`). Два взаимоисключающих состояния: ### Состояние A — есть уведомления (`notifications.length > 0`) — СВЕРЕНО ЖИВЬЁМ у `cloude` **Тело:** список `