Skip to content

feat(ux): add topbar quick-filter clear button - #821

Merged
d-oit merged 3 commits into
mainfrom
feat/topbar-search-ux-10541301898023058298
Sep 25, 2026
Merged

d-oit merged 3 commits into
mainfrom
feat/topbar-search-ux-10541301898023058298

Conversation

@d-oit

@d-oit d-oit commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Improve topbar quick-filter search input UX and accessibility by updating input to type="search", adding an accessible clear search button when a query is present, and handling Escape key presses to clear the active query.


PR created automatically by Jules for task 10541301898023058298 started by @d-oit


📝 Summary by GitNexus

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

Added by GitNexus for PR #821. Edit freely — this block is replaced on the next review, everything above it is left untouched.

Improve topbar quick-filter search input UX and accessibility:
- Change search input type to semantic type="search"
- Add accessible clear search button (X) when query is non-empty
- Support clearing active search query on Escape keypress
- Add unit tests for clear button, type="search", and Escape key handler
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@vercel

vercel Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
do-knowledge-studio Ready Ready Preview, v0 Sep 25, 2026 7:06am UTC

@github-actions github-actions Bot added config tests Related to automated/manual tests labels Sep 25, 2026
@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Blocked merge diagnosis — blocked
⏳ Check run(s) still in progress: ["Quality Gate","Unit Tests","Dependency Verify","Codacy Static Code Analysis","Shell Script Security Analysis","Trivy Filesystem Security Scan","Infrastructure as Code Security","Diagnose Blocked Merge State","Secret Detection","commitlint","Analyze (actions)","Analyze (javascript-typescript)"]

@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor
Akon Labs

GitNexus Review · PR #821

GitNexus reviewed 2 changed files.

🤖 Agent context — 2 symbols · 2 files

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

🔴 CRITICAL blast radius — this change reaches 2 downstream symbols across 1 module; this lands on a critical surface, so review the dependents carefully before merging.

Blast Level Dependents Modules Files
🔴 CRITICAL 2 1 2

What changed

Symbol Changes (2)
Kind Symbol Location
Function Topbar src/components/studio/topbar.tsx:28
Function handleSearchKeyDown src/components/studio/topbar.tsx:44
Changed Files (2)
File Status
src/components/studio/topbar.test.tsx 🟡 modified
src/components/studio/topbar.tsx 🟡 modified

What it affects

Architecture Impact

Module Hits Direct
Studio 4 🟢

Blast Radius

Depth Count
d1 (direct) 1
d2 (indirect) 1
d3 (transitive) 0
Direct dependents (d1)
  • src/components/studio/app-shell.tsx:123 · AppShell
Indirect dependents (d2)
  • src/app/page.tsx:5 · Home

Full detail lives in the GitNexus check run for this commit.

@codacy-production

Copy link
Copy Markdown
Contributor

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Improve topbar quick-filter search input UX and accessibility:
- Change search input type to semantic type="search"
- Add accessible clear quick filter button (X) when query is non-empty
- Support clearing active search query on Escape keypress
- Add unit tests for clear button, type="search", and Escape key handler
@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor
Akon Labs

GitNexus Review · PR #821

No issues found in 2 changed files.

🤖 Agent context — 2 symbols · 2 files

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

🔴 CRITICAL blast radius — this change reaches 2 downstream symbols across 1 module; this lands on a critical surface, so review the dependents carefully before merging.

Blast Level Dependents Modules Files
🔴 CRITICAL 2 1 2

What changed

Symbol Changes (2)
Kind Symbol Location
Function Topbar src/components/studio/topbar.tsx:28
Function handleSearchKeyDown src/components/studio/topbar.tsx:44
Changed Files (2)
File Status
src/components/studio/topbar.test.tsx 🟡 modified
src/components/studio/topbar.tsx 🟡 modified

What it affects

Architecture Impact

Module Hits Direct
Studio 4 🟢

Blast Radius

Depth Count
d1 (direct) 1
d2 (indirect) 1
d3 (transitive) 0
Direct dependents (d1)
  • src/components/studio/app-shell.tsx:123 · AppShell
Indirect dependents (d2)
  • src/app/page.tsx:5 · Home

Full detail lives in the GitNexus check run for this commit.

@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

🔄 What's new in this push (f650d90)

The latest push appears to be a UI change confined to Topbar and handleSearchKeyDown in src/components/studio/topbar.tsx. No newly reached modules or risk transition were reported.

The main GitNexus review comment has the full, updated report.

Comment thread src/components/studio/topbar.tsx Outdated
@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor
Akon Labs

GitNexus Review · PR #821

1 issue found across 1 file.

🤖 Agent context — 2 symbols · 2 files

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

🔴 CRITICAL blast radius — this change reaches 2 downstream symbols across 1 module; this lands on a critical surface, so review the dependents carefully before merging.

Blast Level Dependents Modules Files
🔴 CRITICAL 2 1 2

What changed

Symbol Changes (2)
Kind Symbol Location
Function Topbar src/components/studio/topbar.tsx:28
Function handleSearchKeyDown src/components/studio/topbar.tsx:44
Changed Files (2)
File Status
src/components/studio/topbar.test.tsx 🟡 modified
src/components/studio/topbar.tsx 🟡 modified

What it affects

Architecture Impact

Module Hits Direct
Studio 4 🟢

Blast Radius

Depth Count
d1 (direct) 1
d2 (indirect) 1
d3 (transitive) 0
Direct dependents (d1)
  • src/components/studio/app-shell.tsx:123 · AppShell
Indirect dependents (d2)
  • src/app/page.tsx:5 · Home
Prompt for AI agents (1 issue)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.

<file name="src/components/studio/topbar.tsx">

<violation number="1" location="src/components/studio/topbar.tsx:116">
P3: Keep the clear target from overlapping the command-palette target — The new clear button is 44px wide at minimum and placed 'right-12' (48px), so in the 240px ('w-60') container it spans x=148–192. The existing command button is also at least 44px wide and 'right-1.5' (6px), spanning x=190–234. Thus the two interactive targets overlap by 2px whenever the clear button is rendered.
</violation>

</file>

Full detail lives in the GitNexus check run for this commit.

Co-authored-by: nexuscheck[bot] <305171802+nexuscheck[bot]@users.noreply.github.com>
@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor
Akon Labs

GitNexus Review · PR #821

1 issue found across 1 file.

🤖 Agent context — 2 symbols · 2 files

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

🔴 CRITICAL blast radius — this change reaches 2 downstream symbols across 1 module; this lands on a critical surface, so review the dependents carefully before merging.

Blast Level Dependents Modules Files
🔴 CRITICAL 2 1 2

What changed

Symbol Changes (2)
Kind Symbol Location
Function Topbar src/components/studio/topbar.tsx:28
Function handleSearchKeyDown src/components/studio/topbar.tsx:44
Changed Files (2)
File Status
src/components/studio/topbar.test.tsx 🟡 modified
src/components/studio/topbar.tsx 🟡 modified

What it affects

Architecture Impact

Module Hits Direct
Studio 4 🟢

Blast Radius

Depth Count
d1 (direct) 1
d2 (indirect) 1
d3 (transitive) 0
Direct dependents (d1)
  • src/components/studio/app-shell.tsx:123 · AppShell
Indirect dependents (d2)
  • src/app/page.tsx:5 · Home
Prompt for AI agents (1 issue)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.

<file name="src/components/studio/topbar.tsx">

<violation number="1" location="src/components/studio/topbar.tsx:116">
P3: Keep the clear target from overlapping the command-palette target — The new clear button is 44px wide at minimum and placed 'right-12' (48px), so in the 240px ('w-60') container it spans x=148–192. The existing command button is also at least 44px wide and 'right-1.5' (6px), spanning x=190–234. Thus the two interactive targets overlap by 2px whenever the clear button is rendered.
</violation>

</file>

Full detail lives in the GitNexus check run for this commit.

@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

🔄 What's new in this push (4a63765)

The newest push appears to refine studio UI behavior in src/components/studio/topbar.tsx, changing the Topbar and handleSearchKeyDown functions. No newly reached modules or risk transition are reported.

The main GitNexus review comment has the full, updated report.

@d-oit
d-oit enabled auto-merge (squash) September 25, 2026 07:05
@d-oit
d-oit merged commit 094b7e0 into main Sep 25, 2026
21 of 22 checks passed
@d-oit
d-oit deleted the feat/topbar-search-ux-10541301898023058298 branch September 25, 2026 07:06
placeholder={placeholder}
aria-label={inputAriaLabel}
className="min-h-[44px] w-full rounded-md border border-border bg-background pl-9 pr-12 text-[13px] text-ink placeholder:text-ink-faint transition-colors focus:border-saffron focus:outline-none focus:ring-2 focus:ring-saffron/40"
className="min-h-[44px] w-full rounded-md border border-border bg-background pl-9 pr-20 text-[13px] text-ink placeholder:text-ink-faint transition-colors focus:border-saffron focus:outline-none focus:ring-2 focus:ring-saffron/40"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚪ Nit — Reserve enough input padding for both overlay buttons

w-60 makes the input 240px wide. With pr-20, its editable content extends to x=160px (240−80px), but when a query is present the new 44px-wide clear button is positioned from x=144px to x=188px (right-[3.25rem\] = 52px; see lines 96 and 110–116). Thus 16px of the editable text area lies under the clear button; clicks near the end of a query trigger clear instead of positioning the caret, and text can be obscured on hover.

Suggested fix:

Suggested change
className="min-h-[44px] w-full rounded-md border border-border bg-background pl-9 pr-20 text-[13px] text-ink placeholder:text-ink-faint transition-colors focus:border-saffron focus:outline-none focus:ring-2 focus:ring-saffron/40"
className="min-h-[44px] w-full rounded-md border border-border bg-background pl-9 pr-24 text-[13px] text-ink placeholder:text-ink-faint transition-colors focus:border-saffron focus:outline-none focus:ring-2 focus:ring-saffron/40"
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/components/studio/topbar.tsx, line 108:

<comment>'w-60' makes the input 240px wide. With 'pr-20', its editable content extends to x=160px (240−80px), but when a query is present the new 44px-wide clear button is positioned from x=144px to x=188px ('right-[3.25rem]' = 52px; see lines 96 and 110–116). Thus 16px of the editable text area lies under the clear button; clicks near the end of a query trigger clear instead of positioning the caret, and text can be obscured on hover.</comment>

<context>Enclosing symbol: Topbar. A verified single-line fix was proposed in the suggestion block above.</context>

Why this matters: GitNexus flagged this from your code graph — a caller or contract relies on what changed here. · llm-review

@nexuscheck

nexuscheck Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor
Akon Labs

GitNexus Review · PR #821

1 issue found across 1 file.

🤖 Agent context — 2 symbols · 2 files

Summary

This appears to be a focused React UI update to the studio topbar, with a critical graph-level reach through affected execution flows. Review attention should center on the search keyboard interaction and its test coverage.

🔴 CRITICAL blast radius. A frontend change to the studio topbar in src/components/studio/topbar.tsx reaches outward through direct and transitive dependents.

The change is concentrated in the Studio module, specifically the Topbar and handleSearchKeyDown functions in src/components/studio/topbar.tsx. The accompanying src/components/studio/topbar.test.tsx change indicates the interaction is covered at the component test level.

Review handleSearchKeyDown first, alongside the updated topbar tests, to confirm the clear-button behavior integrates cleanly with existing search keyboard handling. The changed topbar code appears on 12 affected flows, so interaction behavior in this component is the primary review surface.

🔴 CRITICAL blast radius — this change reaches 2 downstream symbols across 1 module; this lands on a critical surface, so review the dependents carefully before merging.

Blast Level Dependents Modules Files
🔴 CRITICAL 2 1 2

What changed

Symbol Changes (2)
Kind Symbol Location
Function Topbar src/components/studio/topbar.tsx:28
Function handleSearchKeyDown src/components/studio/topbar.tsx:44
Changed Files (2)
File Status
src/components/studio/topbar.test.tsx 🟡 modified
src/components/studio/topbar.tsx 🟡 modified

What it affects

Architecture Impact

Module Hits Direct
Studio 4 🟢

Blast Radius

Depth Count
d1 (direct) 1
d2 (indirect) 1
d3 (transitive) 0
Direct dependents (d1)
  • src/components/studio/app-shell.tsx:123 · AppShell
Indirect dependents (d2)
  • src/app/page.tsx:5 · Home
Prompt for AI agents (1 issue)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.

<file name="src/components/studio/topbar.tsx">

<violation number="1" location="src/components/studio/topbar.tsx:108">
P3: Reserve enough input padding for both overlay buttons — 'w-60' makes the input 240px wide. With 'pr-20', its editable content extends to x=160px (240−80px), but when a query is present the new 44px-wide clear button is positioned from x=144px to x=188px ('right-[3.25rem]' = 52px; see lines 96 and 110–116). Thus 16px of the editable text area lies under the clear button; clicks near the end of a query trigger clear instead of positioning the caret, and text can be obscured on hover.
</violation>

</file>

Full detail lives in the GitNexus check run for this commit.

This branch was successfully deployed

1 active deployment
Preview — 4a637656 Deployed Sep 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config tests Related to automated/manual tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant