Skip to content

feat(blocks): add bounded email navigation (Issue #96 Slice 1) - #102

Merged
TheAggressive merged 3 commits into
masterfrom
feat/issue-96-navigation
Sep 21, 2026
Merged

TheAggressive merged 3 commits into
masterfrom
feat/issue-96-navigation

Conversation

@TheAggressive

@TheAggressive TheAggressive commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Summary

Implements the Navigation slice of #96. This PR does not close #96.

  • Adds campaignbridge/navigation to the canonical grammar, editor allowlist and nesting rules, metadata registration, and deterministic compiler registry.
  • Stores one to five explicit HTTPS links with labels limited to 24 plain-text characters. Malformed attributes, unsafe URLs, unsupported styles, and invalid nesting produce blocking diagnostics.
  • Emits escaped links in an accessible presentation table, a mobile stacking rule, and one label and URL per plain-text line. It uses Brand Kit text color and body font.
  • Adds golden HTML and text fixtures, compiler and contract tests, editor registration coverage, and a browser authoring test.
  • Extends the client compatibility matrix merged in test(email): add client compatibility fixture matrix #103 to exercise Navigation across the universal, Outlook Word, Gmail, and Apple Mail profiles. Records the unverified Gmail body-style stacking behavior.

Validation

  • pnpm qa:fast passed, including 19 JS suites and 133 tests.
  • Full PHPUnit passed: 1,112 tests, 5,246 assertions.
  • Focused navigation and client compatibility tests passed: 34 tests, 427 assertions.
  • PHP style checks, JSON parsing, and diff whitespace checks passed.
  • The prior branch CI passed, including browser E2E, build, and package verification. Fresh CI is running for this update.

Compatibility gate

Issue #72's fixture matrix is merged in #103. This branch now tests Navigation output against that matrix. The fixtures are structural regression evidence and do not claim visual rendering in real clients.

@github-actions github-actions Bot added area:blocks WordPress email blocks area:email Email compiler or campaign workflow area:frontend Frontend source or Node tooling area:php PHP or Composer code area:tests Automated tests or test configuration risk:medium Normal product code type:feature New capability labels Sep 21, 2026
@TheAggressive
TheAggressive enabled auto-merge (squash) September 21, 2026 01:53
Exercise navigation output across the universal, Outlook Word, Gmail, and Apple Mail structural profiles. Record mobile stacking uncertainty and assert plain-text destinations.
@TheAggressive
TheAggressive force-pushed the feat/issue-96-navigation branch from 92c97fc to f7b150f Compare September 21, 2026 02:12
@TheAggressive
TheAggressive merged commit dc2a970 into master Sep 21, 2026
21 checks passed
@TheAggressive
TheAggressive deleted the feat/issue-96-navigation branch September 21, 2026 02:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:blocks WordPress email blocks area:email Email compiler or campaign workflow area:frontend Frontend source or Node tooling area:php PHP or Composer code area:tests Automated tests or test configuration risk:medium Normal product code type:feature New capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(blocks): add Wave A general-builder parity blocks

1 participant