fix(filter-bar): restore keyboard focus ring on pipe trigger after selection (#DS-3829)#1694
Conversation
|
Visit the preview URL for this PR (updated for commit 84c126b): https://koobiq-next--prs-1694-y0wnyu3a.web.app (expires Wed, 08 Jul 2026 09:23:57 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c |
There was a problem hiding this comment.
Pull request overview
This PR restores the visible keyboard focus ring on filter-bar pipe triggers after making a selection/applying a value, by centralizing focus restoration logic in the shared KbqBasePipe and updating individual pipe implementations to use it. It also extends keyboard support for adding pipes via the “add pipe” dropdown.
Changes:
- Added a shared
restoreTriggerFocus()helper inKbqBasePipeusing CDKFocusMonitor+ tracked focus origin to preserve keyboard focus styling on restore. - Updated multiple pipe components (select/tree-select/multi-select/date/datetime/text) to restore trigger focus after selection/apply/close.
- Added Enter/Space keyboard activation for adding a pipe from
KbqPipeAdd, with accompanying unit tests.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tools/public_api_guard/components/filter-bar.api.md | Updates public API snapshot for new base-pipe members and optional listSelection signals. |
| packages/components/filter-bar/pipes/base-pipe.ts | Introduces focus origin tracking and restoreTriggerFocus() for consistent focus restoration behavior. |
| packages/components/filter-bar/pipes/pipe-tree-select.ts | Uses shared focus-restore helper after selection. |
| packages/components/filter-bar/pipes/pipe-tree-select.spec.ts | Adds test asserting trigger focus restoration after selection. |
| packages/components/filter-bar/pipes/pipe-text.ts | Restores trigger focus after apply. |
| packages/components/filter-bar/pipes/pipe-text.spec.ts | Adapts tests to async timing and adds focus-restore assertion. |
| packages/components/filter-bar/pipes/pipe-select.ts | Restores trigger focus after selection. |
| packages/components/filter-bar/pipes/pipe-select.spec.ts | Adds keyboard selection + focus-restore coverage (including origin expectation). |
| packages/components/filter-bar/pipes/pipe-multi-tree-select.ts | Restores trigger focus on close. |
| packages/components/filter-bar/pipes/pipe-multi-tree-select.spec.ts | Adds focus-restore assertion on close and flushes timers. |
| packages/components/filter-bar/pipes/pipe-multi-select.ts | Restores trigger focus on close. |
| packages/components/filter-bar/pipes/pipe-multi-select.spec.ts | Adds focus-restore assertion on close and flushes timers. |
| packages/components/filter-bar/pipes/pipe-datetime.ts | Makes listSelection optional; focuses list on open in list mode; restores trigger focus after apply/select; avoids required query access after close. |
| packages/components/filter-bar/pipes/pipe-datetime.spec.ts | Adds focus-restore assertions and verifies list focusing on popover open. |
| packages/components/filter-bar/pipes/pipe-date.ts | Mirrors datetime changes: optional listSelection, focus list on open, restore trigger focus after apply/select. |
| packages/components/filter-bar/pipes/pipe-date.spec.ts | Adds focus-restore assertions and verifies list focusing on popover open. |
| packages/components/filter-bar/pipe-add.ts | Adds Enter/Space handlers to add/open pipes from options via keyboard. |
| packages/components/filter-bar/pipe-add.spec.ts | Adds keyboard interaction tests for adding/opening pipes via Enter/Space. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.