mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-05 22:29:05 +00:00
58ba44dbac4600bcc54fff00a4c5ee97e60332e2
4
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ec97fd9524 |
fix(dialogs): короткие подписи сегментов заливки по референсу — общие ключи fill.seg_* (#600)
Продолжение r1 M1: полные fill.* в RU («По силе зигби-сигнала», «По температуре») не входили одной строкой в четыре колонки сегмента пространства и переносились на вторую строку кнопками. Референс (§4.2 reference/app.js fillOptions, §6.1) даёт короткие подписи Custom | Zigbee | Lights | Temperature — они и стоят в обоих сегментах общими ключами ленивого словаря fill.seg_* (en/ru/de/fr); room.fill_seg_* удалены. USER-GUIDE ru/en, ACCEPTANCE.md и smoke_ux_fixes обновлены; changelog называет короткие подписи. Три эталона меняются к лучшему и требуют повторной приёмки: device-dialog-desktop-en и toggle-entity-dialog-desktop-en («Colour and brightness» одной строкой вместо двух), space-room-color-popover-desktop-ru (сегмент RU без разорванных слов); остальные десять сцен — passed на этом дереве диагностически. Issue: #600 User-Visible: yes |
||
|
|
8dc60aec6e |
fix(dialogs): находки код-ревью #600 r1 — сегмент без разрыва слов, радиус без блокировки Save, свидетель дефекта №5
M1. Подпись сегмента больше не рвётся посреди слова: колонка `.hpf-seg label` не сжимается ниже самого длинного слова (`min-width: fit-content`, для браузеров без него — прежний `0` строкой выше), слова переносятся только по пробелам (`overflow-wrap: normal`), не поместившийся сегмент переносится на вторую строку целыми кнопками (`flex-wrap`). Новый свидетель demo/smoke_dialog_segments_i18n.mjs — четыре диалога × en/ru/de/fr: у каждой подписи число строк (по Range текстового узла: span — flex-элемент, у блока один прямоугольник даже при переносе) не больше числа слов, текст внутри кнопки. На разметке r1 краснеет на en/ru/fr комнаты («Temperature» в 2 строки, «По температуре» в 3). Мутант form-kit-segment-breaks-words возвращает прежние две строки CSS. ACCEPTANCE.md — строка про подписи сегмента переписана. M2. Glow radius — не условие Save: как на dev, нечисло или неположительное значение при сохранении молча становится общим радиусом. Удалены glowRadiusValid, MarkerProblem marker.error_glow_radius, ключ в четырёх локалях словаря settings, aria-invalid у поля; смок device_settings_form утверждает обратное прежнему (badRadiusDoesNotBlockSave, zeroRadiusKeepsSaveEnabled) и проверяет «Review N fields» на привязке в create-режиме. Changelog EN/RU и USER-GUIDE ru/en больше не называют радиус среди ошибок; таблица устройства говорит про молчаливый общий радиус. M3. Свидетель дефекта №5 (поповер «?» обрезается границей диалога комнаты): demo/smoke_dialog_help_clipping.mjs — короткое окно 900×620, диалог комнаты скроллится, «?» нижней карточки прижат к краю; подсказка выходит за край скроллера и остаётся hit-test'ируемой во всех пяти точках (elementsFromPoint сквозь теневые корни — обрезанная часть не hit-test'ится). Четыре ветки: нативный <dialog> и ha-dialog × Popover API и портальный fallback; ветка ha-dialog — заглушка с ловушками настоящей mwc-поверхности (transform + overflow: hidden + собственный скроллер), portal вне поверхности проверен явно. Настоящий ha-dialog (#505, загрузка колеса HA-frontend) — отдельная диагностическая приёмка владельца; так и записано в ACCEPTANCE.md, где появилась таблица AC8 «девять дефектов — свидетель на каждый». M4. ACCEPTANCE.md: эталонов 13, а не 11 — одиннадцать из ТЗ (список AC10 унаследован от #598 без комнаты) плюс две room-temperature-dialog-*. L1. USER-GUIDE.ru.md: испорченная строка таблицы настроек пространства (хвост удалённой строки про декоративный слой) — убран; пояснение «в редакторе подложки остаются видимыми» вернулось в строку «Видимые слои»; строка про солнце говорит «слой Двери, окна и ворота выключен» вместо «Скрыть проёмы включено». Фикстуры листа диалогов набора пересняты (панель — байт в байт). Бюджет: initial 289 852 / 290 900; lazy editor 242 989 / 243 900. Гейты: typecheck, build, bundle:sync (три копии), npm test 2794 pass по четырём частям, no-new-any, mutation-gate --check, check-inputs --coverage, смоки: segments_i18n, help_clipping, четыре формы, config_parity, help_affordance, room_settings, settings_dialog_cards. Issue: #600 User-Visible: yes |
||
|
|
c3e64dc60a |
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 |
||
|
|
94c9d8addf |
docs: положить дизайн-референс диалогов настроек в репозиторий (#600)
AC0 задачи: пока референс лежит вложением в issue, ревью сравнивает продукт с макетом «на глаз», и ровно это дало выпущенный в 1.77.0-beta.2 ложный паритет — карточки снаружи, старая разметка внутри. Содержимое архива `houseplan-settings-design-2026-09-18.zip` (SHA-256 06f07fc212947ee9da1a39aaab2d14cbd41154cc9effe39bc48e1c2e1517255b, сверен побайтово с вложением #591) разложено по образцу #505: - `SPEC.md`, `IMPLEMENTATION-GUIDE.md`, `OPEN-POINTS.md`, карта полей Space — с этого коммита часть ТЗ: расхождение называется ссылкой на пункт документа; - `reference/` — свёрстанный прототип четырёх форм; - `screenshots/` — четыре формы целиком, 560 px, 2x; - `README.md` — происхождение, отпечаток, границы использования; - `ACCEPTANCE.md` — место для парных кадров «референс / продукт» по AC1. Автор — сотрудник владельца (подтверждено 20.09 в #600), внешний грант не нужен. Windows-лаунчеры `START.cmd` и `START.ps1` не переносились: `node serve.mjs` делает то же самое. `room-fill.test.mjs` перенесён как документ намерения, CI его не запускает — под `docs/**` не попадает ни один тестовый glob. В бандл отсюда не попадает ничего; `repo-hygiene` и полный набор зелёные (2793 pass). Issue: #600 User-Visible: no |