feat: #3624018 Let the Live Feed ticker be driven by content
Issue: https://www.drupal.org/project/vartheme_bs5_rightup/issues/3624018
Lets the Live Feed ticker be filled from content (a views block in its items slot) rather than only hand-typed items.
live-feed-item: new optionaltimestamp(integer) andtime_format(defaultg:i A). Drupal Canvas has no adapter that renders a time of day (its only date adapter emitsY-m-d), so an item bound to a content date could not show "9:20 AM" at all.timestays a string and is no longer required; a typedtimestill wins, so hand-placed items are unaffected.live-feeddissolves the wrappers a placed views block brings: Drupal's.blockand.block__content, plus Views' container,.view,.view-contentand a per-row element. All are block-level and turned the single-line ticker into a stacked list, so they getdisplay: contents..view-content > *catches the row wrapper whether or not it has the defaultviews-rowclass.- Scroll speed is derived, not fixed. The animation travels one group width per cycle, so the old fixed
30smade a longer feed scroll faster: measured at 160px/s on a 4788px track, about three times too fast to read, and it changed whenever an editor added an item. Newscroll_speedprop in px/s (default 60); the duration comes from the measured width. Verified in the browser at exactly 60px/s. - Hover,
:focus-withinandprefers-reduced-motionbehaviour is unchanged. Verified paused on hover and running again after.
Heads-up: this mints a new component version. A Canvas placement pinned to the older version silently drops the new inputs.
Merge this first. The RightUp recipe MR rightup!35 (merged) (issue https://www.drupal.org/project/rightup/issues/3624019) depends on it. Without it that ticker renders as a stacked list rather than a single line.
Not in this MR: the ticker is 37px tall where the design says 43px (the design has 12px padding and a 19px row; ours has no feed padding and inherits 18px type instead of 14px). This MR is about making the feed content-driven.
Local pipeline (gitlab-ci-local): build, eslint, stylelint and cspell all pass. The lint jobs run with || true in the project's CI config. eslint reports Prettier indentation errors in live-feed.js from line 52 on; they start in the existing once(...).forEach block on 1.0.x, and the added lines follow that existing indentation.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release