Skip to content

refactor(emcn): share compact Popover treatments - #8239

Open
BillLeoutsakosvl346 wants to merge 2 commits into
stagingfrom
codex/emcn-next-popover
Open

BillLeoutsakosvl346 wants to merge 2 commits into
stagingfrom
codex/emcn-next-popover

Conversation

@BillLeoutsakosvl346

@BillLeoutsakosvl346 BillLeoutsakosvl346 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add compact 28px menu rows/sections, the shared menu surface, and a zero-padding panel option to EMCN Popover.
  • Migrate the two matching menus and embedded panels; keep Radix focus and keyboard behavior.
  • Preserve the existing rendered geometry and colours across the migrated uses.

Base and design review

Targets current staging at d8e7e923a2. The local design diff check reports the same two central-definition review items for the intentional zero-padding and muted-section API, with no caller styling violations or coverage failures.

Validation

  • The original 40 focused tests and 35 current-head targeted tests passed, along with EMCN, workflow-renderer, and app type checks, Biome, and diff whitespace checks.
  • Matched isolated source-derived menu/panel captures in light and dark at 16px and 20px root text have matching computed styles, including hover and focus. Evidence stays outside the product checkout.
  • Greptile and Cubic were requested on the reconciled head. Do not merge automatically.

Visual comparison

Representative matched captures from the local source-derived fixture. Before uses this PR’s base; after uses this PR’s head. Full light/dark and root-size matrices are retained outside the product branch.

Light · 16px root text · menu and panel

popover before and after, light mode, 16px root text, menu and panel

Dark · 20px root text · menu and panel

popover before and after, dark mode, 20px root text, menu and panel

The existing visual captures predate the staging reconciliation. The conflict resolution and current-head source examples are documented in the visual-review comment; no treatment values changed in that reconciliation.

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
docs Ready Ready Preview Sep 25, 2026 12:35am UTC

Request Review

@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.

@greptile-apps

greptile-apps Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge based on the reviewed changes.

Summary

This PR centralizes compact menu styling and zero-padding Popover content, then migrates matching menus and embedded panels to the shared options.

  • Adds compact row and section styles plus a menu surface to EMCN Popover.
  • Replaces caller-specific padding classes with the shared padding='none' option.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Popover size compact] --> B[Shared item and section styles]
  C[PopoverContent appearance menu] --> D[Shared menu surface]
  E[PopoverContent padding none] --> F[Embedded calendars and panels]
Loading

Reviews (2) · Last reviewed commit: "Merge staging into compact Popover treat..."

@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 11 files

Confidence score: 5/5

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

Re-trigger cubic

@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 11 files

Confidence score: 5/5

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

Re-trigger cubic

@BillLeoutsakosvl346

BillLeoutsakosvl346 commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor Author

Visual review: compact Popover treatments

Change. The existing 28px location/views rows and unpadded calendar/panel shells now come from EMCN options. The consumers keep their animation, focus, and close handlers. This is an ownership change; the shown geometry is intended to remain the same.

Representative source excerpts:

Before

<Popover size='md' open={open} onOpenChange={setOpen}>
<PopoverContent align='start' sideOffset={4} className='w-auto p-0'>

After

<Popover size='compact' open={open} onOpenChange={setOpen}>
<PopoverContent align='start' sideOffset={4} padding='none' className='w-auto'>

The menu surface also moves into the shared option. Exact ViewsMenu prop excerpts:

Before:

className={cn(
  POPOVER_ANIMATION_CLASSES,
  'bg-[var(--bg)] p-1.5 text-[var(--text-body)] shadow-xs'
)}

After:

appearance='menu'
className={POPOVER_ANIMATION_CLASSES}

The new EMCN compact size owns the row spacing; appearance='menu' owns the surface; padding='none' owns the edge-to-edge panel option.

Images. Each image is a labeled isolated source-derived class fixture: Before is on the left, After on the right. It shows menu rows and the no-padding panel shell, using the product CSS. These are not captures of an open product popover.

Light Dark
16px root: Light 16px Before left and After right 16px root: Dark 16px Before left and After right
20px root: Light 20px Before left and After right 20px root: Dark 20px Before left and After right

Staging conflict resolution · e4250adde7

Staging added the Inter font to the source-list popover. The merged call site retains that font and width while replacing its local zero-padding class with the shared option:

Current staging

<PopoverContent className={cn('w-[420px] p-0', inter.className)} />

This PR

<PopoverContent padding='none' className={cn('w-[420px]', inter.className)} />

The attached images show the shared menu and panel treatments; they are isolated fixtures, not a capture of this source-list call site. Focused tests (35), EMCN/workflow-renderer/app type checks, and Biome pass. The local diff check reports the same two intentional EMCN Popover definition changes and no coverage failures.

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptileai 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 25, 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 11 files

Confidence score: 5/5

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

Re-trigger cubic

This branch was successfully deployed

1 active deployment
Preview — e4250add 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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant