feat(dialogs): финал #600 — мёртвые стили, парные кадры, документация, потолки

Завершение четырёх серий по референсу docs/design/600-settings-dialogs/:

- из eager-листов dialogs.styles.ts и chrome.styles.ts сняты стили прежней
  разметки диалогов (.bindsel/.bindharow/.entcheck, .ctrlchip*, .markerhelp*,
  .helpfieldlabel, .markerradios, .markerlightdisabled, .markerbadgetechnical,
  .markerglowvalue, .fileupload, .descin, .pdfedit/.pdftag, .gsrow,
  .ripple-*row, .radaradditional, .togglehint, футеры marker/room) — 5,8 КБ
  исходника; с разметки сняты уже пустые классы;
- «Additional actions» карточки Details — подзаголовок и строка действий
  набора, без раскрывашки (radar-section.ts, только additional-placement);
- Q3 уточнён по кадру: hp-device-preview стоит без обёртки — у него свой
  заголовок «Display preview · Now», второй над ним удваивался; пустое
  состояние — блок на тинте;
- §6.1: «?» у комнаты стоит у поля Home Assistant area, а не у заголовка
  Basics; подписи сегмента заливки — None · Zigbee · Lights · Temperature ·
  Custom (два коротких ключа room.fill_seg_*), источники — «Average of the
  room’s sensors / Specific device or entity», режим свечения — «Colour and
  brightness» (тексты прежних ключей укорочены под сегменты);
- подпись поля с «?» и без стоят на одной линии в сетке (min-height 32 по
  кнопке hp-help); иконка внутри подсказки — inline;
- парные кадры: demo/capture_design_pairs_600.mjs снимает четыре диалога в
  двух темах на 560 в состояниях макетов → docs/design/…/pairs/ (8 PNG,
  палитра 256, ~0,5 МБ); ACCEPTANCE.md — статус по диалогам, расхождения с
  референсом по каждому со ссылкой на пункт SPEC и принятые адаптации (шапка
  hp-dialog по §3, тумблеры набора по К7, секции радара/пылесоса по §7.2);
- changelog EN/RU («Не выпущено»), USER-GUIDE ru/en: раздел «Как устроены
  диалоги настроек», таблица настроек пространства по новым карточкам,
  диалог комнаты, диалог устройства, ссылка «Как у пространства»;
- бюджет: стартовый граф 289 853 — потолок 291 600 → 290 900 (снятые стили);
  ленивый редакторский 243 149 — итоговый потолок 243 900 с разбором по
  сериям в bundle-budget.mjs.

Golden: 11 сцен диалогов (device-dialog-*, room-temperature-dialog-*,
toggle-entity-dialog-*, device-help-popover-light-ru,
general-color-popover-desktop-en, settings-help-zoom-200-*,
device-ripple-color-popover-mobile-ru, space-room-color-popover-desktop-ru)
прогнаны диагностически (capture, HP_ALLOW_FOREIGN_CAPTURE, только
artifacts/): харнесс проходит все пути без исключений, кадры «different» —
эталоны переснимаются на Linux CI / машине владельца по #455.
Скриншоты документации (06-device-editor, 06-device-display-preview и др.)
устарели по отпечатку — пересъёмка перед кандидатом беты (#479).

Гейты: typecheck, build, bundle:sync (три копии байт в байт), npm test
2793 pass по четырём частям, mutation-gate --check, check-inputs --coverage,
фокусные смоки четырёх форм и смоки диалога устройства.

Issue: #600
User-Visible: yes
This commit is contained in:
Claude
2026-09-20 13:01:07 +03:00
parent 6598af51d9
commit c3e64dc60a
76 changed files with 848 additions and 697 deletions
+12 -1
View File
@@ -308,7 +308,14 @@ export const LOW_HEADROOM_WARNING_BYTES = 15_000;
* `.roomdialog .srcrow/.dropbtn`), модуль `room-temperature-controls.ts`
* удалён — его заменили поля набора в ленивом графе. Потолок опущен следом.
*/
export const INITIAL_VIEW_GZIP_CEILING = 291_600;
/**
* #600, финал: 291 600 → 290 900 (замер 289 878). Из eager-листа
* `dialogs.styles.ts` и `chrome.styles.ts` сняты стили прежней разметки диалога
* устройства (`.bindsel/.bindharow`, `.ctrlchip*`, `.markerhelp*`,
* `.markerradios`, `.markerlightdisabled`, `.pdftag`, `.descin`, `.togglehint`
* и др.) — их заменил лист набора в ленивом графе.
*/
export const INITIAL_VIEW_GZIP_CEILING = 290_900;
export const INITIAL_VIEW_CEILING_BAND = 2_000;
/**
@@ -429,6 +436,10 @@ export const LAZY_FURNITURE_ART_GZIP_CEILING = 17_900;
* (четыре «?» с aria); в листе набора — блок с отключением, панель, поле
* иконки, заметки. Старые стили диалога (`.markerlightgroup`, `.srcrow`,
* `.colorrow`, `.ctrlchip*`) пока в eager-листе — снимаются в финале серии.
* - финал: потолок 243 900 остаётся (замер 243 127 после снятия мёртвых
* классов из разметки): итог #600 — 222 900 → 243 900 (+21 000, из них
* ≈ 12 000 — четыре словаря `i18n/settings`, остальное — лист набора и
* разметка четырёх форм с валидацией и dirty).
*/
export const LAZY_EDITOR_GZIP_CEILING = 243_900;
export const LAZY_GRAPH_CEILING_BAND = 2_000;