# Карта: Почта

Снята по **мобильной веб-версии** forbion.f7cloud.ru (вьюпорт ~400px, плавающая нижняя панель —
мобильная тема), аккаунт `cloude` / почтовый ящик `cloude@forbion.ru`, **строго read-only**
(mail/073). Живой UI — полный **Nextcloud Mail 5.7.15**.

**Источники узлов:** `[live]` — пройдено в браузере; `[src]` — достроено по читаемому исходнику
`design-reference/forbion-apps/f7mail/src` (форк f7mail) + nextcloud/mail 5.7.15, т.к. узел
требует записи и live не проходился; `[mockup]` — сверено с `design/screens/mail/*.png`.

> ⚠️ **Ограничение read-only для Почты.** В NC Mail пометкой `\Seen` является само **открытие**
> непрочитанного письма — это запись на сервер. У `cloude` все 3 письма во «Входящих» —
> непрочитанные, «Отправленные»/«Черновики» пусты, прочитанных писем нет. Поэтому **экран
> открытого письма live не проходился**; его дерево дано по `[src]`/`[mockup]` и помечено
> `не-пройдено-live: \Seen`. Composer открывался пустым и закрывался без ввода (черновик не
> создавался). Ни одно пишущее действие (отправка/удаление/спам/перемещение/пометки) не нажималось.

---

## Вход
Нижняя плавающая панель оболочки → иконка «конверт» (раздел «Почта», активна) → открывается
**Список писем** текущей папки (по умолчанию «Приоритетные входящие», `/apps/mail/box/priority`).
Оболочку панели/шторки описывает `shell.md` (зона лида).

---

## Экран: Список писем (папка) `[live]`
URL: `/apps/mail/box/<id>` (напр. priority, 517=Входящие).

**Шапка:**
- Поле «Искать в папке» → фокус строки поиска в текущей папке.
- Иконка-слайдеры (справа в поле) → открывает модалку **«Параметры поиска»** (расширенный поиск).
- Круглая зелёная «+» → открывает **Композер** (сворачивается в плашку «Сообщение без названия»).

**Тело:** вертикальный список карточек-писем. Пустая папка → центр-заглушка «**В этой папке нет
сообщений**» + логотип F7 `[live]` (наблюдалось в «Отправленных»).

**Карточка письма (строка):**
- Аватар/инициалы отправителя (цветной кружок).
- Имя отправителя (жирным) + строка-превью темы/начала письма.
- Справа: относительное время («1:00», «вс») + **зелёная точка** = непрочитано.
- Тап по карточке → **Экран открытого письма/треда** (`/box/<id>/thread/<tid>`).
  ⚠️ помечает `\Seen` — live не нажималось.

**Быстрые действия строки (появляются при наведении/выборе)** `[live]`:
- ✉ конверт → пометить прочитанным/непрочитанным *(запись)*.
- 🌿 лист → важное/снять важность *(запись)*.
- 🗑 корзина → удалить ветку *(запись)*.
- ⋯ → контекстное меню (ниже).

### Контекстное меню письма (⋯ «Больше действий») `[live]`
Верхний ряд иконок: **В избранное** (звезда) · **Прочитать** (конверт) · **Снять важность** (лист).
Далее пункты:
- 🕐 `<дата и время письма>` (инфо-строка, напр. «13 июля 2026 г., 1:00»).
- ⓘ **Пометить как спам** *(запись)*.
- 🏷 **Изменить метки** → диалог выбора/назначения меток *(запись при сохранении)*.
- ⏰ **Запланированная отправка** *(в native — открывает composer-ответ с выбором времени)*.
- **Переместить ветку** → выбор папки назначения *(запись)*.
- 🗑 **Удалить ветку** *(запись)*.
- ⋯ **Больше действий** → подменю:
  - **Редактировать как новое сообщение** → Композер с телом письма.
  - **Ответить встречей** → создание события-приглашения (CalDAV).
  - **Создать задачу** → создание задачи из письма (Tasks).
  - **Скачать письмо** → выгрузка .eml.

---

## Экран: Параметры поиска (расширенный поиск) `[live]`
Открывается иконкой-слайдерами в поле поиска. Модалка «**Параметры поиска**», крестик ✕ (закрыть).
**Поля:**
- **Тема** (строка).
- **Тело** — «Найти» (строка).
- **Дата**: «Дата начала» и «Дата окончания» — два пикера даты (иконка календаря).
- **От** — «Выберите отправителей» (мультиселект).
- **Кому** — «Выберите получателей».
- **Коп** — получатели CC.
- **СкрКоп** — получатели BCC.
- **Метки** — «Выбор меток».
- **Отмечено как** (чекбоксы): Важное · В избранное · Непрочитанное · Имеет вложения ·
  Упоминания меня.

**Низ:** «Очистить» (сброс) · «**Поиск**» (зелёная).

---

## Экран: Композер (новое сообщение) `[live]`
Открытие: «+» в шапке списка. Сначала **свёрнутая плашка** снизу «Сообщение без названия»
с иконками ⤢ (развернуть) и ✕ (закрыть/отменить). Развёрнутый вид — полноэкранная форма:

**Шапка:** заголовок «Новое сообщение», под ним отправитель «cloude <cloude@forbion.ru>»;
справа — («свернуть») и ✕ («закрыть»).
**Поля:**
- **Кому:** с шевроном-раскрытием → раскрывает **Копия:** (Cc) и **Ск:** (Bcc).
- **Тема сообщения**.
- **Текст** (тело, шеврон сворачивания); в правом нижнем углу тела — 📎 **скрепка** (вложения).
**Низ-панель:**
- **≡A** → панель форматирования текста (rich-text: жирный/курсив/списки и т.п.) `[src]`.
- **⋯** → меню: **Умный подборщик** · **Текстовые шаблоны** · **Отправить позже** ·
  ☐ **Запросить подтверждение прочтения**.
- **▷ Отправить** (зелёная, неактивна при пустых получателях) *(запись — не нажималось)*.

расхождение: native-композер «⋯» содержит только «Отправить позже» + «Запросить подтверждение
прочтения» (`MailComposeScreen.kt:758,767`) — **нет «Умного подборщика» и «Текстовых шаблонов»**
(см. Расхождения п.2–3). Запланированная отправка, подтверждение прочтения, вложения, rich-text
(≡A) — совпадают.

---

## Экран: Открытое письмо / тред `[src] [mockup]` — не-пройдено-live: \Seen
URL: `/apps/mail/box/<id>/thread/<tid>`. Структура по `MessageView.vue` + макетам
`Почта _ Окно сообщения*.png`, `Сообщение с перепиской *.png`:

**Шапка:** тема письма (заголовок h2). Для локального (черновик/исходящее) — метка статуса.
**Панель действий над письмом:**
- Обычное письмо: **Ответить** · **Переслать** · **В избранное** (toggle) · **Отметить
  непрочитанным** (если `\Seen`) · **Архивировать** · **В спам** · **В корзину** · **Удалить**.
- Черновик/исходящее: **Отправить** (если можно) · **Изменить черновик** · **Удалить**.
**Мета-строки:** Кому (to), Копия (cc), «Отправить в» (sendAt — для запланированных).
**Перемещение:** выпадающий выбор папки + кнопка «Переместить».
**Вложения:** список карточек вложений (если есть).
**Тело:** HTML-письмо в WebView-контейнере, либо текстовое в Compose (в native).
**Тред:** несколько писем переписки — сворачиваемые карточки (закрытые/открытое), см.
`Сообщение с перепиской закрытые.png` / `... открытое.png`.
**Плавающая кнопка «↩ Ответить»** (native `MailReplyFab`) — сверено ранее, `[mockup]`.

---

## Навигация папок (шторка «Открыть навигацию») `[live]`
Кнопка-гамбургер почты → выезжает список папок ящика. Сверху: «**Создать сообщение**» и
«**Обновить**». Далее:
- **Приоритетные входящие** (`/box/priority`).
- Аккаунт **cloude@forbion.ru** + кнопка «**Действия**» (⋯ по аккаунту).
- **Входящие** (`/box/517`) · **Непрочитанное** (`/box/unread/517`) · **Избранные**
  (`/box/starred/517`) · **Черновики** (`/box/516`) · **Отправленные** (`/box/515`) ·
  **Спам** (`/box/513`) · **Корзина** (`/box/514`).
- У каждой папки — кнопка «**Действия**» (⋯: переименование/очистка/подписка и т.п. `[src]`).

---

## Экран: Параметры эл. почты (настройки) `[live] вход` / `[src] глубина`
Точка входа: пункт «**Параметры эл. почты**» (в меню настроек шапки; JS-модалка, `href="#"`).
Глубину подтверждает native `MailSettingsScreens.kt` + макеты `Параметры электронной почты.png`,
`Параметры учётной записи.png`:
- **Основные** (общие параметры почты).
- **Учётные записи** (аккаунты; форма `AccountForm.vue` `[src]`).
- **Внешний вид**.
- **Текстовые шаблоны / подписи**.
- **Конфиденциальность**.
- **Безопасность**.
- **Фильтры** (sieve) — `FiltersSettingsView.vue` `[src]`; в native — общий официальный API
  `/apps/mail/api/filter` (список/вкл/выкл/удаление/правка простых; сложные — долг v1).

расхождение(?): live-модалку «Параметры эл. почты» не раскрывал по пунктам (JS-диалог) — при
сверке на устройстве пройти каждый подраздел и сверить состав с native.

---

## Пустые/особые состояния `[live]`
- Пустая папка: «В этой папке нет сообщений» + логотип F7 по центру.
- Свёрнутый композер: плашка «Сообщение без названия» (⤢ / ✕) поверх списка.

---

## Расхождения с нативным `feature/mail`
Полный список расхождений (веб ↔ натив) вынесен в **[`mail.diff.md`](mail.diff.md)** — формат
итерации сверки по mail/081 (функция/элемент, тип Ф/Д, приоритет, статус). Кратко:
нативный клиент функционально зрелый (расширенный поиск, подтверждение прочтения,
важность/спам/метки/задача/событие/запланированная отправка — совпадают). Пробелы:
- **P1 функц.:** черновики не сохраняются из композера.
- **P2:** «Текстовые шаблоны» в композере; подписи и порядок виртуальных папок.
- **P3:** «Умный подборщик», «Ответить встречей», «Скачать письмо», «Редактировать как новое»,
  отдельное «Архивировать»; паттерн быстрых действий строки (hover vs свайп — device?).
- **device?:** экран открытого письма, модалка настроек, диалоги меток/перемещения — live не
  проходились (read-only / `\Seen`), см. `mail.diff.md` раздел «Требуют device-сверки».
