Automattic / Automattic/blocks-engine
Preserve structured enterprise mega navigation
- Dominant language
- PHP
- Stars
- 14
- Forks
- 2
- Avg merge
- 2h 10m
- Merged PRs (30d)
- 561
Description
## Problem
The post-#1396 signal for `28-enterprise-b2b` shows that the source desktop mega navigation exceeds the structure represented by core Navigation.
The source contains:
- mega-panel wrappers;
- a four-column grid;
- column headings;
- rich per-link descriptions;
- a featured region;
- desktop hover/focus behavior plus a separate mobile details navigation.
Blocks Engine currently emits a valid canonical `core/navigation` tree with all destinations and rich link labels, but `core/navigation-submenu` flattens the mega panel into one list. The panel, grid, columns, and headings are absent from the block tree.
## Current evidence
After dynamic navigation is represented by the static proxy:
```
score 0.7398
coverage 0.8104
matched 420 / 670
desktop presence 120
```
The signal also reports repeated caret and rich-description color/typography deltas. The generated rich-label markers and CSS are present, so those deltas must be checked against a real WordPress/browser render before changing projection code.
## Plan
1. Import `28-enterprise-b2b` into a disposable WordPress runtime using the current Static Site Importer and Blocks Engine candidates.
2. Capture the rendered desktop navigation and compare the caret/description computed styles with source.
3. Separate browser-confirmed projection defects from static-signal limitations.
4. Implement a structured companion mega-navigation block for source structure core Navigation cannot represent.
5. Preserve editability, URLs, labels, responsive behavior, and exact source geometry without falling back to opaque `core/html`.
## Acceptance
- Evidence identifies which rich-label deltas reproduce in the browser.
- The mega panel retains its authored grid, headings, descriptions, and featured region.
- Desktop and mobile behavior remain editable and deterministic.
- No `core/html` fallback is introduced.
- WordPress block validity, static parity, browser parity, packaging, and solved-site promotion gates pass.
---
*AI assistance disclosure: OpenAI GPT-5.6 Sol via OpenCode used the corrected static-parity signal to separate canonical navigation preservation from missing mega-menu structure, inspected the generated rich-label markers and WordPress core rendering contracts, searched for existing tracking, and drafted this evidence-first companion-block plan. Chris Huber directed the work and remains responsible for the issue.*
Contributor guide
Research direction
Start by importing 28-enterprise-b2b into a disposable WordPress runtime with the current Static Site Importer and Blocks Engine candidates. Capture desktop navigation, compare caret and rich-description computed styles with the source, and separate browser-confirmed defects from static-signal limitations. Done means the authored grid, headings, descriptions, featured region, responsive behavior, editability, URLs, and labels are preserved without core/html, with all listed validity, parity, packaging, and promotion gates passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php, wordpress
- Domain
- frontend, tooling, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100