Skip to content

Promote fixes from the Plex client embed (layout, virtuallist, focus, reanimated, rendering)#107

Merged
RuudBurger merged 66 commits into
mainfrom
promote/lightning-burst
Jul 14, 2026
Merged

Promote fixes from the Plex client embed (layout, virtuallist, focus, reanimated, rendering)#107
RuudBurger merged 66 commits into
mainfrom
promote/lightning-burst

Conversation

@RuudBurger

@RuudBurger RuudBurger commented Jul 13, 2026

Copy link
Copy Markdown
Member

Batch of framework fixes developed against the Plex client's in-repo react-lightning embed and validated there before promotion. This is the full burst (63 commits, individual commits preserved) since we vendored main

Grouped by area:

Yoga / layout

  • int16→int32 layout wire, percentage translate resolved against own size at readback, anchored-edge translate for right/bottom-docked nodes, logical start/end insets → yoga edges, border width fed into yoga, string aspectRatio parsing, dropped-flex reset to yoga defaults, synchronous text measurement + flushLayout/settled, same-parent insertChild treated as a move so reorders re-layout.

VirtualList

  • drop estimatedItemSize (sizes come from overrideItemLayout or measurement), reveal driven off yoga-settled instead of timers, withhold rows until measured height settles, re-push cell cross-size after a data reset, skip stale visible indices after a sync shrink, viewport capped at stage edge + scrollSnapAlign, header/footer cross-axis pinned when width is definite, stop cross-size ratcheting off the parent cell.

Focus / spatial nav

  • focus-when-ready + arrival-not-mount autoFocus + destinations-on-arrival, getLayout ref API + skipChildFocusScroll, skip empty focus groups, clamp cross-axis distance to the target span, expose focused state to function children, pointer-suppress aware focus-follow.

Reanimated

  • bind animateStyle so composed animations play, composed sequence/repeat/delay on the node, honor caller easing in withTiming, infer hook deps by tracking shared-value reads, skip no-op style animations, partial style pushes so static flex props survive.

Rendering / misc

  • opt-in view flattening (flattenLayoutViews) with placeholder fold-through, rounded clipping via stencil clipRadius, withhold paint until first layout, Image array-style flattening + border shaders on live nodes, key-event normalization + held-key auto-repeat, font-atlas url resolution before the inlined worker, drop unresolvable css keyword colors, CanvasRoot export for react-dom-free mount, glyph fallback advance measurement, @lightningjs/renderer 3.1.1 bump.

Commits are individually scoped and messaged; each applies cleanly on main

DouweBos and others added 30 commits July 13, 2026 17:55
@RuudBurger RuudBurger merged commit 01a42e4 into main Jul 14, 2026
1 check passed
@RuudBurger RuudBurger deleted the promote/lightning-burst branch July 14, 2026 10:43
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.

2 participants