From ed812855df268b85b5fcb549b1b12f4076d365a2 Mon Sep 17 00:00:00 2001 From: Chris Lorenzo Date: Wed, 13 May 2026 21:12:30 -0400 Subject: [PATCH] fix(navigation): preserve user transitions across directional navigation handleNavigation merged directional transitions on top of el.transition, silently clobbering any developer-supplied transition keys. The empty `transition={/* @once */ {}}` default on Row/Column/Virtual also blocked style-defined transitions because elementNode's style setter skips keys that are already defined on the node. - handleNavigation now snapshots the developer's base transition and merges as `{ ...directional, ...base }` so user-supplied keys win. Re-snapshots when el.transition is changed externally (reactive update). - Drop empty `transition={{}}` defaults from Row, Column, and Virtual so `style.transition` flows through. Fixes #8 Co-Authored-By: Claude Opus 4.7 --- src/primitives/Column.tsx | 1 - src/primitives/Row.tsx | 1 - src/primitives/Virtual.tsx | 1 - src/primitives/utils/handleNavigation.ts | 31 +++++++++++++++--------- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/primitives/Column.tsx b/src/primitives/Column.tsx index 9777eb2..bf05b9c 100644 --- a/src/primitives/Column.tsx +++ b/src/primitives/Column.tsx @@ -34,7 +34,6 @@ export const Column: Component = (props) => { = (props) => { ( return (