Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,16 @@
},
"changesets": [
"activity-hide-releases-layout",
"alignself-auto-and-space-evenly",
"ancestor-groups-child-focused",
"center-focus-target-header-edge",
"classname-style-updates",
"color-parsing-alpha-hex-hsl-space-rgb",
"compat-layer-types-and-snap-alignment",
"css-transform-keyword-colors",
"derived-value-withtiming-ticks",
"directional-anchor-internal-redirect",
"directional-focus-enclosing-sibling",
"flatten-exit-animation-materialize",
"flatten-layout-views",
"flatten-scroll-fold-through",
Expand All @@ -33,7 +40,10 @@
"flexbox-sync-flush-settled",
"focus-destination-stale-ref-fallback",
"focus-events-bubble",
"focus-restoration-excluded-and-translate-reveal",
"focus-skip-empty-groups",
"focusable-view-spatial-target",
"fontweight-scale-textalign-textshadow",
"grid-focus-cross-axis",
"lightning-animated-transform-and-resting-styles",
"lightning-aspect-ratio",
Expand All @@ -46,23 +56,36 @@
"lightning-input-events",
"lightning-pressable-focused-state",
"lightning-same-parent-reorder",
"lightning-scrollview-native-scroll-ref",
"lightning-shader-partial-update",
"lightning-text-intrinsic-sizing",
"lightning-virtuallist-parity",
"lightning-worker-font-url",
"momentum-scroll-callbacks",
"percent-translate-own-size",
"pixelratio-scene-truth",
"reanimated-dep-inference",
"resizeobserver-per-target-geometry",
"rounded-clipping-option",
"scrollview-focus-into-view",
"text-color-and-refold",
"text-transform-and-ellipsize-modes",
"translate-clear-and-destinations-every-arrival",
"two-geese-stand",
"useanimatedstyle-restart-changed-keys",
"view-focus-capture-optional-rn-prop",
"virtual-list-viewport-flex",
"virtuallist-grid-separator-gap",
"virtuallist-native-snap-props",
"virtuallist-no-estimate-onlayout",
"virtuallist-no-react-compiler-memo",
"virtuallist-pin-cross-axis",
"virtuallist-pin-section-cross-axis",
"virtuallist-reclamp-and-endreached",
"virtuallist-reveal-backstop",
"virtuallist-reveal-on-settled",
"withrepeat-nonpositive-infinite",
"withtiming-default-easing",
"zindex-stacking-scope"
]
}
24 changes: 24 additions & 0 deletions apps/react-lightning-example/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# @plextv/react-lightning-example

## 0.4.4-alpha.2

### Patch Changes

- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [9606bd7]
- Updated dependencies [a91bb8b]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [69fead4]
- Updated dependencies [0d769ad]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [431eeca]
- Updated dependencies [2a8ec62]
- Updated dependencies [55f5849]
- Updated dependencies [eb05bf1]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2
- @plextv/react-lightning-components@0.4.4-alpha.2
- @plextv/react-lightning-plugin-css-transform@0.4.3-alpha.1

## 0.4.4-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/react-lightning-example/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-example",
"version": "0.4.4-alpha.1",
"version": "0.4.4-alpha.2",
"private": true,
"description": "Sample implementation of @plextv/react-lightning in a React app",
"bugs": {
Expand Down
34 changes: 34 additions & 0 deletions apps/react-native-lightning-example/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# @plextv/react-native-lightning-example

## 0.4.4-alpha.2

### Patch Changes

- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [9606bd7]
- Updated dependencies [a91bb8b]
- Updated dependencies [ab7de08]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [e40e00d]
- Updated dependencies [69fead4]
- Updated dependencies [77dbe29]
- Updated dependencies [0d769ad]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [566570d]
- Updated dependencies [431eeca]
- Updated dependencies [4e90dfe]
- Updated dependencies [5f820c4]
- Updated dependencies [2a8ec62]
- Updated dependencies [55f5849]
- Updated dependencies [eb05bf1]
- Updated dependencies [b65dcbb]
- Updated dependencies [b5722da]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2
- @plextv/react-lightning-components@0.4.4-alpha.2
- @plextv/react-lightning-plugin-css-transform@0.4.3-alpha.1
- @plextv/react-native-lightning@0.4.3-alpha.2
- @plextv/react-lightning-plugin-reanimated@0.4.3-alpha.2

## 0.4.4-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/react-native-lightning-example/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-native-lightning-example",
"version": "0.4.4-alpha.1",
"version": "0.4.4-alpha.2",
"private": true,
"description": "Sample implementation of @plextv/react-native-lightning in a React Native app",
"bugs": {
Expand Down
34 changes: 34 additions & 0 deletions apps/storybook/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# @plextv/react-lightning-storybook

## 0.4.4-alpha.2

### Patch Changes

- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [9606bd7]
- Updated dependencies [a91bb8b]
- Updated dependencies [ab7de08]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [e40e00d]
- Updated dependencies [69fead4]
- Updated dependencies [77dbe29]
- Updated dependencies [0d769ad]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [566570d]
- Updated dependencies [431eeca]
- Updated dependencies [4e90dfe]
- Updated dependencies [5f820c4]
- Updated dependencies [2a8ec62]
- Updated dependencies [55f5849]
- Updated dependencies [eb05bf1]
- Updated dependencies [b65dcbb]
- Updated dependencies [b5722da]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2
- @plextv/react-lightning-components@0.4.4-alpha.2
- @plextv/react-lightning-plugin-css-transform@0.4.3-alpha.1
- @plextv/react-native-lightning@0.4.3-alpha.2
- @plextv/react-lightning-plugin-reanimated@0.4.3-alpha.2

## 0.4.4-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/storybook/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-storybook",
"version": "0.4.4-alpha.1",
"version": "0.4.4-alpha.2",
"private": true,
"description": "Documentation for react-lightning",
"bugs": {
Expand Down
23 changes: 23 additions & 0 deletions packages/plugin-css-transform/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# @plextv/react-lightning-plugin-css-transform

## 0.4.3-alpha.1

### Patch Changes

- a91bb8b: Color parsing handles 8- and 4-digit alpha hex, `hsl()`/`hsla()`, and the modern space-separated `rgb()` form with a `/` alpha delimiter. These previously fell through unparsed.

`PlatformColor`/`OpaqueColorValue` objects have no resolvable string form, so they're dropped with a warning (like unresolvable keyword colors) instead of throwing and taking the screen down.

- 69fead4: `fontWeight` keeps the full 100-900 scale. Weights were collapsed to bold/normal, and a numeric string like `'600'` then fell through to 400 in the renderer; numeric strings are parsed and numbers and keywords pass through untouched. Unsupported `textAlign` values are mapped rather than forwarded as-is.

Text shadow styles (`shadowColor`, `textShadow*`) are dropped with a warning instead of converted: the shipping SDF text renderer has no shadow, and RN's `textShadow*` props were never wired to the renderer's keys.

- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [431eeca]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2

## 0.4.3-alpha.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-css-transform/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-plugin-css-transform",
"version": "0.4.3-alpha.0",
"version": "0.4.3-alpha.1",
"description": "Transforms CSS properties to lightning properties. Requires @plextv/react-lightning-plugin-flexbox",
"bugs": {
"url": "https://github.com/plexinc/react-lightning/issues/new"
Expand Down
18 changes: 18 additions & 0 deletions packages/plugin-flexbox/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# @plextv/react-lightning-plugin-flexbox

## 0.4.3-alpha.2

### Patch Changes

- c1b31f7: `alignSelf: 'auto'` resolves to the parent's `alignItems` (yoga `ALIGN_AUTO`) instead of being mapped to a fixed alignment, matching RN's type and behavior. `space-evenly` maps to yoga's `ALIGN_SPACE_EVENLY` rather than sharing the `space-between` case.
- 431eeca: A `transform` is a complete snapshot of the node's transform, so an axis it omits has returned to identity. Yoga now writes translate 0 for that axis instead of leaving the previous pixel inset in place, which a partial style push would otherwise never repaint (a cleared focus offset stayed where it was).

A focus group with `destinations` also forwards focus on every arrival, not just the first. `destinations` takes precedence over the remembered child, matching native `TVFocusGuideView`, so a reopened nav drawer returns to its selected item. `autoFocus` remains the separate first-then-remember mechanism.

- Updated dependencies [d065c91]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [431eeca]
- @plextv/react-lightning@0.4.3-alpha.2

## 0.4.3-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-flexbox/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-plugin-flexbox",
"version": "0.4.3-alpha.1",
"version": "0.4.3-alpha.2",
"description": "Adds FlexBox layout support to @plextv/react-lightning using yoga",
"bugs": {
"url": "https://github.com/plexinc/react-lightning/issues/new"
Expand Down
28 changes: 28 additions & 0 deletions packages/plugin-reanimated/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# @plextv/react-lightning-plugin-reanimated

## 0.4.3-alpha.2

### Patch Changes

- 0d769ad: Surface momentum scroll callbacks. VirtualList now fires `onMomentumScrollBegin`/`onMomentumScrollEnd` once around a focus-driven animated scroll — begin when it starts, end when it settles or is cancelled — mirroring tvOS/AndroidTV. The reanimated `useAnimatedScrollHandler` shim now routes the `onMomentumBegin`/`onMomentumEnd` handler keys by event name instead of only ever calling `onScroll`. Consumers that key off momentum (fast-scroll detection, jump-bar auto-hide) can react to the real end of a scroll instead of an idle timeout.
- 4e90dfe: `useAnimatedStyle` restarts only the keys whose animation actually changed. Every update previously tore down and restarted all runners, so an unrelated key's animation was restarted mid-flight and visibly jumped.
- b65dcbb: `withRepeat` treats any count <= 0 as infinite on both the renderer-looped and composed paths, matching native reanimated. Only `-1` was infinite before, so a `0` count stopped immediately instead of looping forever.
- b5722da: `withTiming` with no easing defaults to reanimated's `Easing.inOut(Easing.quad)`, expressed as the equivalent cubic-bezier the renderer parses. It previously fell back to linear, so every un-eased timing animation ran flat.
- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [a91bb8b]
- Updated dependencies [ab7de08]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [e40e00d]
- Updated dependencies [69fead4]
- Updated dependencies [77dbe29]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [566570d]
- Updated dependencies [431eeca]
- Updated dependencies [5f820c4]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2
- @plextv/react-lightning-plugin-css-transform@0.4.3-alpha.1
- @plextv/react-native-lightning@0.4.3-alpha.2

## 0.4.3-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-reanimated/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-plugin-reanimated",
"version": "0.4.3-alpha.1",
"version": "0.4.3-alpha.2",
"description": "Reanimated plugin for @plextv/react-native-lightning",
"bugs": {
"url": "https://github.com/plexinc/react-lightning/issues/new"
Expand Down
20 changes: 20 additions & 0 deletions packages/react-lightning-components/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# @plextv/react-lightning-components

## 0.4.4-alpha.2

### Patch Changes

- 9606bd7: A center-aligned focus target stays mid-viewport instead of snapping to the header/footer edge. The edge protection left rows near a header or footer stuck at the top or bottom; center placement now wins (tvOS parity), and the downstream clamp still bounds the resulting target.
- 0d769ad: Surface momentum scroll callbacks. VirtualList now fires `onMomentumScrollBegin`/`onMomentumScrollEnd` once around a focus-driven animated scroll — begin when it starts, end when it settles or is cancelled — mirroring tvOS/AndroidTV. The reanimated `useAnimatedScrollHandler` shim now routes the `onMomentumBegin`/`onMomentumEnd` handler keys by event name instead of only ever calling `onScroll`. Consumers that key off momentum (fast-scroll detection, jump-bar auto-hide) can react to the real end of a scroll instead of an idle timeout.
- 2a8ec62: VirtualList reserves the separator size between grid rows. The `ItemSeparatorComponent` size was left out of the multi-column row offsets, so rows sat a separator's height too high and the total content size came up short. Separators sit between rows rather than between columns (matching FlashList), and zero-height empty rows are skipped.
- 55f5849: VirtualList no longer reports the DEFAULT_ITEM_SIZE guess through onLayout. Callers that derive layout from that width (Grid computes numColumns and re-keys the list) would remount the list on every guess-measure-guess cycle, an infinite loop when the list mounts without a laid-out size (e.g. inside a hidden Activity). resolveCrossSize now flags the fallback as an estimate and the onLayout effect skips it.
- eb05bf1: VirtualList reconciles its scroll offset against the latest content size. A shrink reclamps the offset instead of leaving it past the new end, and a list short enough to fit its viewport primes `onEndReached` on mount. The clamp and threshold decision is now shared by the scroll handler and the content-size effect, so both paths agree.
- Updated dependencies [c1b31f7]
- Updated dependencies [d065c91]
- Updated dependencies [0621d7d]
- Updated dependencies [3d54c22]
- Updated dependencies [ec39013]
- Updated dependencies [4b28d02]
- Updated dependencies [e62db77]
- Updated dependencies [431eeca]
- @plextv/react-lightning-plugin-flexbox@0.4.3-alpha.2
- @plextv/react-lightning@0.4.3-alpha.2

## 0.4.4-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/react-lightning-components/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning-components",
"version": "0.4.4-alpha.1",
"version": "0.4.4-alpha.2",
"description": "React components for react-lightning",
"bugs": {
"url": "https://github.com/plexinc/react-lightning/issues/new"
Expand Down
17 changes: 17 additions & 0 deletions packages/react-lightning/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# @plextv/react-lightning

## 0.4.3-alpha.2

### Patch Changes

- d065c91: Every ancestor focus group is notified when its own directly-focused child changes, not only the group directly above the leaf. A VirtualList whose cells nest their own focus group never learned that focus had crossed a cell, so its scroll-to-focus stopped following. Matches tvOS, where every ancestor hears about focus crossing its children.
- 0621d7d: Anchor directional focus into a nested group and fix internal-redirect self-cycling. Directional nav now beams from the deepest focused leaf and descends by geometry into the chosen sibling, so a narrow-header-beside-wide-group row lands under the source's cross-axis position instead of on the group's first child; a redirect node is returned for the focus manager to forward to its destination. Separately, `_focusNode`'s upward walk now only hands focus off to external redirects: an internal redirect (destinations within the node's own subtree, e.g. an EPG airings guide pointing at its own cells) is already satisfied by the downward-arrival redirect, and re-firing it while walking back up targeted a descendant just visited and self-cycled, aborting the move and stranding focus on the guide's first child.
- 3d54c22: Directional focus can enter a sibling that fully encloses the source on the movement axis. A screen scene behind a floating header keeps its focusable content below the source, but the distance was measured to the sibling's top edge — above the source — so the move was rejected and focus stayed stuck in the header. Such a container is now entered from the source's trailing edge instead.
- ec39013: `focusRestorationExcluded` nodes are skipped by focus restoration. They never become the parent's mount-time default and never inherit focus when the focused sibling unmounts, so a drawer edge guard can't take focus during launch.

Separately, a node withheld until layout now waits one extra layout pass while a pixel translate hasn't been folded into its position yet — otherwise it painted at its untransformed origin for a frame. Bounded to that single extra pass, so a mis-detected translate can't strand the node invisible.

- 4b28d02: The ResizeObserver shim reports each entry against its own target's rect. A single shared layout handler meant every observed element was handed the last-laid-out element's geometry, and the handler couldn't be removed per target on `unobserve`/`disconnect`.
- e62db77: `ScrollView` reveals a focused descendant the way native TV scroll views do: scroll the minimum needed to bring it fully into view, and leave already-visible items where they are. `snapToAlignment` only counts as deliberate placement for `center` and `end` — `start` and `item` (paging) aren't real focus targets, and `item` has no alignment math behind it at all, so both fall through to ensure-visible rather than snapping a focused row out of view. Exports `FocusManagerContext` from react-lightning so the compat layer can observe focus changes.
- 431eeca: A `transform` is a complete snapshot of the node's transform, so an axis it omits has returned to identity. Yoga now writes translate 0 for that axis instead of leaving the previous pixel inset in place, which a partial style push would otherwise never repaint (a cleared focus offset stayed where it was).

A focus group with `destinations` also forwards focus on every arrival, not just the first. `destinations` takes precedence over the remembered child, matching native `TVFocusGuideView`, so a reopened nav drawer returns to its selected item. `autoFocus` remains the separate first-then-remember mechanism.

## 0.4.3-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/react-lightning/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plextv/react-lightning",
"version": "0.4.3-alpha.1",
"version": "0.4.3-alpha.2",
"description": "React renderer for rendering React apps with Lightning.js",
"bugs": {
"url": "https://github.com/plexinc/react-lightning/issues/new"
Expand Down
Loading
Loading