# Конструктор писем VipAvenue (Svelte)

Подробная инструкция по использованию редактора для сборки Pug-кода писем.

## Запуск проекта
1. Установите зависимости: `npm install`
2. Запустите dev-сервер: `npm run dev`
3. Откройте ссылку из терминала (обычно `http://localhost:5173`)

## Сохранение в email-gen
Для записи `let.pug` и `html.pug` нужен локальный сервер. Автосохранение работает только для `html.pug`, а `let.pug` сохраняется кнопкой «Сохранить».

### Сборка и запуск
1. Соберите фронт: `npm run build`
2. Запустите сервер: `npm run serve`
3. Откройте интерфейс: `http://localhost:4173`

### Переменные окружения
- `EMAIL_GEN_ROOT` — путь к корню `email-gen`
- `EMAIL_GEN_PROJECT` — имя проекта (по умолчанию `vipavenue`)
- `EMAIL_GEN_HTML_PATH` — путь к `html.pug` внутри `email-gen` (опционально)
- `EMAIL_GEN_LETTERS_DIR` — путь к папке `letters` внутри `email-gen` (опционально)
- `EMAIL_GEN_PUBLIC_INDEX` — путь к `public/index.html` (опционально)
- `PORT` — порт сервера (по умолчанию `4173`)

Кнопка `HTML` в конструкторе копирует содержимое `public/index.html` через `/api/html`.

### Dev-режим (опционально)
Если запускаете `npm run dev`, укажите `VITE_API_BASE=http://localhost:4173`,
чтобы кнопка сохранения обращалась к backend.

## Общие элементы
- **Тёмная тема** — переключатель в топбаре. Сохраняется в `localStorage`.
- **Папка изображений** — глобальный префикс для всех картинок. В блоках указывается только имя файла и расширение.
- **Цены в товарах** — один глобальный флажок. Управляет всеми товарными блоками (включая «3 товара + картинка»).
- **Собрать мужское / Собрать женское** — переставляет сегменты относительно разделителя (`dividerVA`), сохраняя общие блоки до и после.
- **Сохранить как пресет** — сохраняет текущее состояние блоков и настроек.
- **Сбросить** — очищает блоки и Pug.

## Работа с блоками
- Добавляйте блок через выпадающий список «Тип блока».
- Каждый блок имеет сегмент: **O** (общий), **Ж**, **М**. Сегментный бейдж меняется при клике.
- Перетаскивайте блоки за «ручку» или кнопками ↑/↓.
- Параметры блока сразу попадают в Pug (панель справа).
- Кнопки «Скопировать код» / «Экспорт .pug» работают сверху и снизу панели кода.

### Сегменты и сборка версий
- Общие блоки **до** разделителя `dividerVA` всегда остаются сверху.
- При сборке **мужской** версии: сегмент М становится над разделителем, Ж — под ним; общие блоки вокруг разделителя остаются на месте.
- При возвращении на **женскую** версию порядок восстанавливается.

## Пресеты
- Вкладка «Пресеты»: Новинки, Акция, Новые коллекции, Мои пресеты.
- Для Новинок/Акции/Новых коллекций введите женские и мужские ID (до 16), при необходимости цены.
- Кнопки «Женская версия» / «Мужская версия» создают набор блоков и переходят в конструктор.
- «Мои пресеты» — сохранённые состояния конструктора. Доступны загрузка/удаление.

## Поля и картинки
- В блоках с картинками указывайте только имя файла и расширение; базовый путь — в «Папка изображений».
- Расширение по умолчанию: `.png`.

## Хранение данных
- `localStorage` ключи:
  - `vip_letter_editor_blocks_v1`
  - `vip_letter_editor_settings_v1` (включая `imageBaseUrl`, `showPrices`, тема)
  - `vip_letter_editor_theme`
  - `vip_letter_editor_custom_presets_v1`

## Частые действия
- **Показать превью HTML для текстового блока** — чекбокс внутри текстового блока (если нужен рендер HTML).
- **Убрать отступ после блока** — флажок внутри блока.
- **Ширина/высота, отступы** — в доп. настройках (кнопка «Доп. настройки» там, где она есть).

Если что-то пошло не так: проверьте, что глобальный флажок цен включён/выключен как нужно, и убедитесь, что разделитель `dividerVA` стоит на месте, если используете сборку мужской/женской версии.
