mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Серия 0 из пяти по #600. Ничего из четырёх диалогов ещё не переложено — эта серия даёт им инструменты и оболочку. Набор (`form-kit.ts` + `form-kit.styles.ts`), числа из §3.1 SPEC.md референса, цвета через переменные темы HA: - полная строка настройки `toggleRow` — сетка 28/1fr/44: иконка, название + «?», подпись, тумблер справа; тумблер — нативный чекбокс, нарисованный CSS, как у редактора панели: один вид в HA, на стенде и в golden, и всё тот же `input[type=checkbox]` для смоков; компактный вариант для однотипных списков; - `field`, `fieldGrid` (две колонки и 1fr/175), `subsection`, `unitInput`, `rangeLine`, `rangeEnds`, `radioRow`, `choiceCards`; - `valueTiles` (4 колонки), плитки цвета в CSS; `colorField` — компактная плашка вокруг существующего `hp-color-opacity` (Q5): свотч открывает ту же панель, рядом hex, число прозрачности и Reset; нативного пикера нет; - `callout` (К5: сообщения о состоянии остаются на виду), `compass` 44 px, `footerStatus`, `chip`, `tintBlock`, `textLink`, `divider`; - `segmented` получил образцы линии, иконки и `disabled`; вид — как в референсе: контейнер на канве, активный сегмент на тинте. Оболочка (`hp-dialog.ts`, атрибут `form-shell` у четырёх диалогов настроек): ширина 560 через `--hp-dialog-wide-width`, которую `:host([wide])` уже читал; высота min(940px, 100vh − 48); единственный скроллер — `.content`, тело формы высотой не владеет (К6, дефект 7 из issue); «✕» 44 px; бейдж имени пространства в заголовке (`badge`). Generic `wide` и остальные диалоги не тронуты (Q7). `hp-dialog[form-shell] .body` — без max-height и overflow, канва 16 px. Фикстуры листа диалогов `test/fixtures/form-kit-card-dialog*.css` пересняты намеренно; лист панели совпал с замороженным побайтово (К9, AC11). `editor.loading` → «Загрузка…» в четырёх локалях (дефект 9); aria-текст прежний. Потолок ленивого редакторского графа 222 900 → 225 900 с доводом в `bundle-budget.mjs`: рост — CSS-строки набора, не код; значение промежуточное, серии 1–4 выкидывают старые правила, итог замеряется в конце. Гейты: typecheck, build, bundle:sync, `npm test` (2791 pass; красными были только потолок — поднят — и неотслеженные файлы манифеста — добавлены), `smoke_settings_dialog_cards`, `smoke_room_settings`. Issue: #600 User-Visible: no