Skip to content

refactor(ui): share fork picker disclosure triggers - #8262

Open
BillLeoutsakosvl346 wants to merge 3 commits into
stagingfrom
codex/emcn-next-fork-disclosures
Open

BillLeoutsakosvl346 wants to merge 3 commits into
stagingfrom
codex/emcn-next-fork-disclosures

Conversation

@BillLeoutsakosvl346

@BillLeoutsakosvl346 BillLeoutsakosvl346 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Share the repeated fork picker disclosure button, OverflowText label, and EMCN 14px chevron across resource, file, folder, excluded-folder, and mapping rows.
  • Keep each row's width, gap, badge, nested body, indentation, and selection behavior at its call site.
  • Expose each row's expanded state with aria-expanded. Add a visible token-based keyboard focus outline; the product's global reset previously removed the native outline.

Validation

  • Focused Vitest: 2 files, 4 tests passed, including keyboard focus. Biome, git diff --check, and app type checking passed.
  • Before/after isolated captures use product CSS and source-checked classes from staging. Light/dark at 16px and 20px root size: closed and open states match pixel for pixel. Focus and Enter states show the intentional focus outline; computed chevron size and 150ms transition remain unchanged.
  • A browser check of the actual server-rendered shared component confirms Tab focus and the solid 2px --selection outline in light/dark at both root sizes.
  • The local design diff (tool 3.10.7) found no confirmed violations or coverage failures; it retains one advisory for this feature-owned control. The full scanner is coordinated separately.

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile review this PR

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Sep 24, 2026 7:53pm UTC

Request Review

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@greptile-apps

greptile-apps Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge.

Summary

The PR replaces repeated fork-picker disclosure buttons with a shared trigger while retaining row-specific layout and selection behavior. It adds expanded-state semantics, keyboard-focus styling, and a focused test. No new actionable issues were identified in the changes since the previous review.

Reviews (2) · Last reviewed commit: "Test fork disclosure keyboard focus"

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile review this PR

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

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.

No issues found across 6 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

Visual review: fork picker disclosures

Change. Five fork-picker row types now share ForkDisclosureTrigger for the label, 14px chevron, and trigger semantics while retaining their existing row-specific spacing and selection controls. The trigger adds aria-expanded and a keyboard-visible focus outline. Closed and expanded rows keep their prior appearance; the focus state becomes clearer.

Representative source excerpts from ResourceKindRow:

Before

<button
  type='button'
  className='flex min-w-0 flex-1 items-center gap-1 text-left hover:text-[var(--text-primary)]'
  onClick={() => setExpanded((value) => !value)}
>

After

<ForkDisclosureTrigger
  label={`${label} (${selectedCount > 0 ? `${selectedCount}/${total}` : total})`}
  expanded={expanded}
  onToggle={() => setExpanded((value) => !value)}
  className='min-w-0 flex-1 gap-1'
  labelClassName='flex-1'
/>

Images. These are isolated source-derived fork-row fixtures, not a running fork wizard. The focused excluded-folder row shows the new outline; the other representative rows show retained geometry. The fixture compared closed, expanded, focus, and keyboard states. The later PR commit adds a test only; relevant staging source stayed unchanged after capture.

Focus state Before After
Light, 16px root Fork disclosure focus before, light 16px Fork disclosure focus after, light 16px
Dark, 16px root Fork disclosure focus before, dark 16px Fork disclosure focus after, dark 16px
Light, 20px root Fork disclosure focus before, light 20px Fork disclosure focus after, light 20px
Dark, 20px root Fork disclosure focus before, dark 20px Fork disclosure focus after, dark 20px

This branch was previously deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant