виджет · внешний вид

Внешний вид

Один вопрос: что посетитель видит до того, как начал общаться. Цвет, угол, язык, заголовок панели и переключатель каналов — консольные панели «Лаунчер» (визуальная половина) и «Переключатель каналов», собранные в один экран. Открывается из хаба «Виджет на сайте».

11 · W1

Редактор «Внешний вид»

Слева — заполненный пример: hex-поле с живым свотчем и рядом пресетов, иллюстративный макет лаунчера, положение, язык (эндонимы), заголовок панели, расположение переключателя каналов. Справа — проверка hex и условное поле размера иконок.

заполнено
9:41
Внешний вид
#2F6FED
Пусто — собственный цвет виджета по умолчанию.
Пресеты — тап заполняет hex (ввод цвета с клавиатуры на телефоне неудобен).
Предпросмотр (иллюстративный)
Показывает только цвет и угол — два поля, которые может честно отразить. Не живой виджет.
Справа внизу
Слева внизу
Русский
Варианты — English / Русский, эндонимы, не переводятся. Это язык виджета для посетителя — не язык приложения оператора.
Чем помочь?
До 300 символов. Пусто — встроенное приветствие по умолчанию, а не «ничего».
Переключатель каналов
Над полем ввода
Под кнопкой
Размер иконок появляется только для «Под кнопкой» — см. второй экран.
WidgetAppearanceEditor · committed.copy(primaryColorHex, position, locale, panelTitle, channelSwitcher*)

Свотч — настоящий паритет с консолью (.ago-widget-swatch): маленький залитый чип с разобранным цветом. Живого превью в консоли нет вовсе, поэтому и здесь его нет; иллюстративный макет лаунчера — чистый Compose, без движка виджета и сети.

Пресеты и статичный макет — рекомендованные телефонные добавки поверх паритета; автор может от них отказаться, не задев паритет. Пакет для этого не нужен (в отличие от экрана брендинга каналов, который тянет Coil ради удалённого логотипа).

проверка · условное поле
9:41
Внешний вид
#2F6
Введите цвет в формате #RRGGBB. Пока неверно — свотч показывает цвет по умолчанию.
Справа внизу
Слева внизу
Переключатель каналов
Над полем ввода
Под кнопкой
Средние
Видно только при «Под кнопкой». Значение всё равно всегда отправляется — скрытое поле круговым рейсом сохраняет своё текущее значение.
isValidHexColor · ^#[0-9A-Fa-f]{6}$ — клиентская вежливость, блокирует «Сохранить»

Проверка — только UX-вежливость; авторитетный гейт — UpdateWidgetConfigHandler, а Refused(detail) с сервера показывается дословно. Размер иконок скрывается при «Над полем ввода» (зеркало консольного условного рендера), но никогда не nullable — уходит на сервер всегда.