From 63d189db072efaa712f38212fecc2796686bc23e Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 21 Jul 2026 23:06:03 +0000 Subject: [PATCH] =?UTF-8?q?Editor=20text=20fields:=20use=20native=20=20instead=20of=20ha-textfield=20=E2=80=94=20v0.16.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shared _tf() editor helper built text/number fields with `ha-textfield`. That Home Assistant element isn't guaranteed to be registered in every frontend build; when it's missing it renders as an empty invisible custom element, so every text field silently vanished from the visual editors — Title, Name, Icon, Unit, Decimals, Bar max, Energy label, History window. The controls that still showed use ha-entity-picker, native inside a labelled .field wrapper, matching the native ` (v0.16.4) +- **User (screenshots):** couldn't change the power card title — the visual + editor was **missing every text field** (Title, Name, Icon, Unit, Decimals, + Bar max, Energy label, History window). What still rendered: entity pickers, + the accent + mode dropdowns, and the switches. +- **Root cause:** the shared `_tf()` helper built fields with `ha-textfield`. + That HA element isn't guaranteed to be registered in every frontend build; in + this user's HA it was **undefined**, so each field rendered as an empty + invisible custom element → silently dropped. The surviving controls use + `ha-entity-picker` / native `` inside a + `.field` wrapper (label + input), matching the native ` (not `ha-textfield`): that + // HA element isn't guaranteed to be registered in every frontend build, and + // when it's missing it renders as an empty invisible node — which silently + // dropped every text field (Title, Name, …) from the editors. A native + // input always renders and matches the native (not `ha-textfield`): that + // HA element isn't guaranteed to be registered in every frontend build, and + // when it's missing it renders as an empty invisible node — which silently + // dropped every text field (Title, Name, …) from the editors. A native + // input always renders and matches the native