# Z51 Pug Builder — руководство по интерфейсу

Этот файл описывает **интерфейс** и **логику использования** конструктора писем. Здесь нет технических деталей реализации — только то, как устроена работа в UI, где что находится и зачем это нужно.

---

## 1. Общая идея

Конструктор собирает письмо из блоков, взятых из `block.pug`. Каждый блок — это кусок Pug-кода, размеченный комментарием `//Название`. В интерфейсе вы выбираете нужные блоки, редактируете только важные поля (текст, ссылки, изображения, ID и т.п.), а на выходе получаете собранный Pug-файл.

Главная выгода: быстро собирать письма без ручного копирования и без риска повредить структуру шаблона.

---

## 2. Навигация по интерфейсу

Верхняя панель (шапка) содержит:
- **Иконка дискеты** — открывает поле для названия пресета и сохранение пресета.
- **Иконка папки** — переход на страницу пресетов.
- **Сборка** — основная страница сборки письма.
- **Настройки** — управление проектом и шаблонами.
- **Переключатель темы** — светлая/тёмная.
- **Назад / Сброс** — только на странице сборки.

В левом сайдбаре:
- **Название проекта** (крупно, окрашено акцентом) или логотип.
- **Выбор проекта**.
- **Добавить блок** (выпадающий список).
- **Быстрые кнопки блоков**.
- Счётчик общего количества блоков.

---

## 3. Страница «Сборка»

Это основной экран для работы с письмом.

### 3.1. Добавление блоков
- Через выпадающий список «Добавить блок».
- Через быстрые кнопки (настраиваются в настройках проекта).
- Через кнопку «+» внизу каждого блока — добавляет новый блок **после текущего**.

Новые блоки открываются сразу (развернуты).

---

### 3.2. Карточка блока
Каждый блок — это карточка с:
- названием блока;
- кнопками **вверх / вниз / удалить**;
- полями редактирования;
- чекбоксом «Отступ после блока» + поле значения (если включено);
- кнопками «PUG» и «+» (добавление блока после).

В любой момент можно раскрыть/свернуть блок по клику на его заголовок.

---

### 3.3. Поля редактирования
Интерфейс не показывает весь код, а только полезные поля.

Типы полей:
- **Текст** — содержимое внутри строк Pug.
- **Ссылки** — `href`.
- **Картинки** — `src`.
- **Кнопки** — если в блоке есть `+buttonRounded(...)`, показываются отдельные поля для текста и ссылки.
- **Товары** — если есть `+productsX`, показывается поле «ID товаров».

Поля автоматически определяются из шаблона блока, но их можно включать/выключать и переименовывать в настройках.

---

### 3.4. Форматирование текста
Для текстовых полей есть панель действий:
- **T** — типограф.
- **Ж** — жирный текст.
- **•** — маркер.
- **<li>** / **</li>** — списки.
- **A + URL** — ссылка.
- **Глаз** — предпросмотр HTML.

---

### 3.5. Абзацы в блоке «Текст»
Блок «Текст» поддерживает несколько абзацев:
- Кнопка **«Абзац»** добавляет новый абзац.
- У каждого дополнительного абзаца есть кнопка удаления.
- Между абзацами автоматически вставляется `+spacerLine(20)`.

---

### 3.6. Списки (нумерованные и маркированные)
Для блоков списков:
- Редактируются только **тексты пунктов**.
- Картинки маркеров/цифр скрыты и не редактируются.
- Кнопка **«Пункт»** добавляет новый пункт.
- Кнопка **×** удаляет пункт.

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

---

### 3.7. Отступы
- **Глобальный отступ** задаётся в настройках.
- У каждого блока можно включить/выключить отступ и задать своё значение.
- Для некоторых блоков отступ не добавляется автоматически (Разделитель, Отступ 20/40).

---

### 3.8. Итоговый Pug
Правый блок — это итоговый Pug-код:
- он обновляется при любом изменении;
- можно **копировать** или **скачивать**;
- при редактировании блок подсвечивается и прокручивается в Pug-окне.

---

## 4. Страница «Настройки»

Настройки делятся на вкладки:

### 4.1. Общие
**Источник блоков**
- Загрузка нового `block.pug`.
- Перезагрузка текущего источника.

**Поля блока**
- Выбор любого блока.
- Включение/выключение полей.
- Переименование подписи поля.

---

### 4.2. Глобальные блоки
- Список всех блоков проекта.
- Для каждого блока можно редактировать Pug-шаблон напрямую.
- Настроить отступ по умолчанию для конкретного блока.

---

### 4.3. Текущий проект
Настройки внешнего вида проекта:
- Название проекта (в левом верхнем углу).
- Цвет акцентов (через палитру или HEX).
- Логотип проекта (загрузка изображения).

Логотип хранится в настройках проекта.

---

### 4.4. Быстрые блоки
- Выбор блоков, которые появятся слева как быстрые кнопки.
- Можно добавлять/удалять элементы.

---

### 4.5. Новый проект
- Создание нового проекта.
- Каждый проект имеет собственный `block.pug`, настройки, пресеты и сборки.

---

## 5. Пресеты

Пресет — это сохранённая сборка письма.

### Как работают пресеты
- Сохраняются через иконку дискеты в шапке.
- Открываются через страницу «Пресеты».
- При сохранении, если имя уже существует — система спрашивает, **обновить или создать новый**.
- При открытии пресета его имя автоматически подставляется в поле сохранения.

### На странице пресетов
- Отображаются название и дата/время сохранения.
- Есть поиск по названию.
- Есть сортировка: сначала новые / сначала старые.

---

## 6. Подсказки и наведение

Все кнопки и поля имеют всплывающие подсказки (`title`), чтобы быстро понимать назначение элемента.

---

## 7. Выгоды использования конструктора

- **Быстрее сборки** — письмо собирается за минуты.
- **Нет ошибок в структуре Pug** — редактируются только нужные фрагменты.
- **Один интерфейс для всех проектов**.
- **Удобное сохранение и повторное использование** через пресеты.
- **Гибкая настройка под разные команды и бренды**.

---

## 8. Типовые сценарии

### 8.1. Быстрая сборка письма с нуля
1) Перейдите в «Сборка».
2) Добавьте блоки через быстрые кнопки или выпадающий список.
3) Заполните поля (текст, ссылки, ID товаров).
4) Проверьте итоговый Pug справа.
5) Скопируйте или скачайте итоговый файл.

### 8.2. Сборка письма по шаблону (пресету)
1) Откройте страницу «Пресеты».
2) Найдите нужный пресет через поиск.
3) Нажмите «Открыть».
4) Отредактируйте детали и сохраните обратно.

### 8.3. Обновление существующего пресета
1) Откройте пресет.
2) Внесите изменения.
3) Нажмите иконку дискеты — имя пресета подставится автоматически.
4) Подтвердите обновление в диалоге.

### 8.4. Настройка быстрых блоков
1) Перейдите в «Настройки» → «Быстрые блоки».
2) Выберите нужные блоки и нажмите «Добавить».
3) Удалите ненужные кнопки через «×».
4) Эти кнопки появятся слева в «Сборке».

### 8.5. Добавление абзацев в текстовом блоке
1) Откройте блок «Текст».
2) Нажмите «Абзац».
3) Заполните новый пункт текста.
4) При необходимости удалите абзац кнопкой «×».

### 8.6. Работа со списками
1) Добавьте блок «Маркированный список» или «Нумерованный список».
2) Заполните первый пункт.
3) Добавьте новые пункты кнопкой «Пункт».
4) Удалите лишние пункты кнопкой «×».

### 8.7. Создание нового проекта
1) Откройте «Настройки» → «Новый проект».
2) Введите имя проекта, нажмите «Добавить».
3) Загрузите `block.pug` для нового проекта.
4) Настройте быстрые блоки, цвета и поля.

---

Если нужно — могу добавить в интерфейс отдельную страницу «Справка» с этим текстом.
