Repository navigation
feat(ui): language picker v2 card layout - #457
Merged
Merged
Conversation
A third screen does not fit in the single 1100-line file. Versions, languages, and rows now live in their own modules so the view change can follow.
A boolean cannot name versions, the language list, and search. Search now has its own screen, the bottom language field is gone, and language screens hide Close.
The header pill was the only way into languages, and search sat under the list. The versions screen now starts with search and a full-width language row, and the pill stays available for hosts that render it themselves.
Language rows led with the English name and pinned the native name to the far end. The native name is now first, English follows only when it differs, and the Suggested and All pills use a high-contrast active state.
The old tests clicked a header pill and typed into a field that stayed mounted. They now follow the language row into search, and the changeset marks the card change as minor.
Stop flaky verify failures during pnpm dev:web by re-applying preserve-host-revert-layer before style checks and watching CSS outputs so Tailwind rewrites cannot drop -webkit-appearance:revert-layer.
🦋 Changeset detectedLatest commit: 2a104c0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Collaborator
Author
|
Addressed the four Greptile review threads:
Picker unit tests: 29 passed. Style verification passes after |
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Wrap/truncate utilities push brotlied CSS to 9502 B; set the limit to measured size plus ~10% headroom per CONTRIBUTING. Co-authored-by: Cursor <cursoragent@cursor.com>
Page-wide querySelector preferred an outer host popover when the picker was nested. Focus via the picker's PopoverContent ref, and skip for standalone content that has no card. Co-authored-by: Cursor <cursoragent@cursor.com>
camrun91
requested review from
Dustin-Kelley,
abharms,
cameronapak and
visualinventor
October 30, 2026 15:31
Collaborator
Author
|
@visualinventor, tagging you here as a reviewer so you can know when we pull this in. if it gets merged by Monday it should make it in the next release. |
abharms
reviewed
Oct 30, 2026
Restore muted shared popover defaults with picker-only header/Close overrides, remove version-search tabIndex so Tab reaches the field, and return standalone language search to the tabs after selection. Co-authored-by: Cursor <cursoragent@cursor.com>
Short Viewport height is limited by --radix-popover-content-available-height, not only innerHeight - 32. Include that CSS variable in the expected min(). Co-authored-by: Cursor <cursoragent@cursor.com>
New and edited workflows use explicit resetPickerTestEnvironment setup without inheriting the suite beforeEach, per docs/testing.md. Co-authored-by: Cursor <cursoragent@cursor.com>
abharms
requested changes
Oct 30, 2026
abharms
left a comment
Collaborator
There was a problem hiding this comment.
The functional fixes look good. One test-structure issue remains before approval.
Search/navigation and new label/count/position workflows now call resetPickerTestEnvironment() directly outside the legacy describe. Co-authored-by: Cursor <cursoragent@cursor.com>
abharms
approved these changes
Nov 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Readers need to browse Bible languages and search them in the tablet picker flow. The previous picker mixed those controls and did not match the tablet card dimensions.
What changed
Scope
Tradeoffs
Sizing stays local to the picker so other popovers keep their defaults. The version-section count describes its displayed rows and excludes rows already shown under Recent Versions.
Blast Radius
The picker’s public API and shared popover defaults are unchanged. A regression assertion protects standalone content selection and host close callbacks. The language row exposes its visible name and count to screen readers.
Visual comparison
Old (
main) · New (this PR) · Figma tablet refs. Captured from Storybook light cards and the saved design frames for node4966:6915.Versions
Languages
Language search
Verification


Confidence Score: 5/5
The PR appears safe to merge; no new actionable issues were found.Summary
The PR splits version browsing, language tabs, and language search into separate views.
No new actionable issues were found. Previous threads were checked against the current code; none require a duplicate comment. Tests were not run during this review.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR V[Versions] -->|Language row| L[Language tabs] L -->|Search button| S[Language search] S -->|Back| L L -->|Back or select language| V V -->|Select version| C[Close picker]Reviews (19) · Last reviewed commit: "test(ui): move edited picker workflows o..." · Reviewed by Greptile