Latest Results
Merge Slot-injected props onto auto-memo wrapper roots
Refs now forward through generated memo wrappers, but props a parent
injects at runtime were still dropped: a Radix asChild/Slot parent
clones its child element and injects props onto it, and the wrapper's
destructured signature discarded everything it didn't declare. The
user-visible symptom (reflex-dev/reflex#6849) was a stateful input
under rx.form.control(as_child=True) rendering with no name/id, so
new FormData(form) omitted the field entirely.
Transparent wrappers now compile to ({children, ref, ...rest}) and
render their root as jsx(Root, {...mergeSlotProps(rest, ({...own}))}).
The new mergeSlotProps runtime helper applies Radix Slot merge
semantics with the compiled-in props in the child role: own props win
for plain props, on* handlers compose (own first), style objects merge,
and className strings concatenate; an empty injection returns the own
props object unchanged. The forward_root_ref definition flag is renamed
to forward_root_props to cover both halves of the transparency.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TgUwZh63X1rWaYrfExH2Hgclaude/automemoized-forwardref-protocol-w2fe3p Latest Branches
0%
claude/automemoized-forwardref-protocol-w2fe3p 0%
FarhanAliRaza:fix/unprocessable-delta-client-error -3%
benedikt-bartscher:try-orjson © 2026 CodSpeed Technology