From 6f0d02bd9946394915b7ab03e476306782cf0b41 Mon Sep 17 00:00:00 2001 From: elvis kahoro Date: Sat, 24 Oct 2026 13:06:16 +0000 Subject: [PATCH] fix(component): focus textarea controls when clicking input-group addons --- assets/docs/components/input-group.md | 2 +- components/ui/input_group.py | 2 +- tests/test_input_group.py | 68 +++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 tests/test_input_group.py diff --git a/assets/docs/components/input-group.md b/assets/docs/components/input-group.md index c19daf4a..2d92f260 100644 --- a/assets/docs/components/input-group.md +++ b/assets/docs/components/input-group.md @@ -390,7 +390,7 @@ class InputGroupAddon(ElDiv, CoreComponent): if (!addon.onclick) { addon.onclick = (e) => { if (!e.target.closest('button')) { - addon.parentElement?.querySelector('input')?.focus(); + addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus(); } }; } diff --git a/components/ui/input_group.py b/components/ui/input_group.py index 7df9f49d..fd17aec7 100644 --- a/components/ui/input_group.py +++ b/components/ui/input_group.py @@ -100,7 +100,7 @@ def add_custom_code(self) -> list[str]: if (!addon.onclick) { addon.onclick = (e) => { if (!e.target.closest('button')) { - addon.parentElement?.querySelector('input')?.focus(); + addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus(); } }; } diff --git a/tests/test_input_group.py b/tests/test_input_group.py new file mode 100644 index 00000000..8110abee --- /dev/null +++ b/tests/test_input_group.py @@ -0,0 +1,68 @@ +"""Regression tests for ``input_group``'s addon focus-management handler. + +``InputGroupAddon.add_custom_code`` injects an ``onclick`` handler that moves +focus to the group's form control when a non-button region of the addon is +clicked. The handler originally located the control with +``querySelector('input')`` — a CSS *type* selector that matches only ```` +elements and returns ``null`` for a ``