reflex-components-core Changelog
v0.9.6 (2026-06-25)
Bug Fixes
- Deliver extra bound handler arguments to upload handlers, so
on_drop=State.handle_upload(rx.upload_files(...), field)passesfieldthrough to the backend instead of raising a missing-argument error. (#5290) - Preserve literal string types through
rx.cond, sorx.cond(State.flag, "green", "red")infersVar[Literal["green", "red"]]instead of widening toVar[str]and tripping Pyright on props typed asLiteral[...] | Var[Literal[...]]such as Radixcolor_scheme. (#6545) rx.debounce_inputno longer crashes the page withReferenceError: input is not definedwhen wrapping a native DOM element such asrx.el.inputorrx.el.textarea. Theelementprop now passes global-scope tags as string literals (element:"input"), while library components keep referencing their imported identifiers. (#6637)
v0.9.5 (2026-06-10)
Features
Formnow validates statically-knowable fields against aTypedDict-annotatedon_submithandler at create time: it walks nested form controls (including components nested in props), collects their staticname/idvalues, and raisesEventHandlerValueErrorlisting the missing and present fields when a requiredTypedDictfield has no matching control.input,select, andtextareaare marked as form controls so their identifiers are collected, and required-field resolution honorsNotRequiredacross Python 3.10 and 3.11+. Theon_submithandler signature also accepts a mapping-style payload viaon_submit_mapping_event. (#6301)
Miscellaneous
- The connection-error banner now subscribes only to the dedicated
CONNECT_ERRORShook instead of the shared events hook, and the upload component declares itsUploadFilesProviderthroughVarData.app_wrapsrather thanUpload._get_app_wrap_components. (#6447)