Skip to content

Extend authored carousels with slideshow presentation - #1507

Merged
chubes4 merged 11 commits into
trunkfrom
feature/authored-carousel-slideshow
Sep 1, 2026
Merged

Extend authored carousels with slideshow presentation#1507
chubes4 merged 11 commits into
trunkfrom
feature/authored-carousel-slideshow

Conversation

@chubes4

@chubes4 chubes4 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • move the generated authored-carousel frontend behavior onto the WordPress Interactivity API
  • declare @wordpress/interactivity in the companion view-module asset manifest
  • extend the same carousel primitive with source-derived slideshow presentation, timing, active slide, dots, full-bleed geometry, and autoplay
  • recognize camel-cased carousel identities such as heroSlider without site-specific vocabulary

Why

The existing companion block represented a multi-item scrolling track. Captured slideshows were either left unsupported or rendered incorrectly as inset multi-item strips. This keeps one editable carousel primitive and parameterizes the presentation instead of introducing a parallel slideshow block.

Source-Derived Contract

For slideshow-shaped source markup, conversion recovers:

  • itemsPerView: 1
  • captured viewport height
  • transition duration
  • autoplay interval
  • initial active slide
  • indexed dot navigation
  • captured viewport breakout

The Interactivity API owns previous/next, keyboard navigation, direct dot selection, live status, bounded/wrapping state, autoplay cleanup, hover/focus pause, and reduced-motion behavior.

Browser Evidence

Measured against the same captured source and imported WordPress page:

viewport source imported
desktop 1440x911 1440x911
mobile 390x253 390x253

Additional checks:

  • identical three-image order and initial active slide
  • next wraps slide 3 to slide 1
  • dot 2 selects slide 2
  • autoplay advances after 15 seconds
  • no browser errors
  • import map resolves @wordpress/interactivity

The full 34-page import completed with 34 receipts, 0 invalid blocks, 0 core/html, and 0 freeform blocks. Its existing eight form-provider fallbacks are unchanged.

Verification

  • composer validate --strict
  • composer test
  • all 292 parity fixtures
  • full 34-page import
  • desktop and mobile Playwright comparison against the captured source
  • runtime arrow, dot, keyboard state, and autoplay checks

Dependency

Static Site Importer must accept module import specifiers in generated script dependency manifests. That focused companion-contract PR follows separately.

AI Assistance

OpenAI GPT-5.6 Sol via OpenCode inspected current trunk, traced the generated module/runtime contract, implemented the parameterized Interactivity API behavior, wrote tests, rebuilt and imported the full site, and measured browser output against the captured source. Chris Huber directed the implementation and reviewed the live site.

@chubes4
chubes4 merged commit 1519c9a into trunk Sep 1, 2026
10 checks passed
@chubes4
chubes4 deleted the feature/authored-carousel-slideshow branch September 1, 2026 21:28
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