Skip to content

v0.180.0

Choose a tag to compare

@tenphi tenphi released this 18 Sep 08:02
· 183 commits to main since this release
62d1b5f

Minor Changes

  • #1404 e6e010b0 Thanks @tenphi! - Form: input components keep working when their binding changes after mount — gaining or losing name, or receiving a form later, binds the field like a first mount (defaultValue as the baseline, an id that follows the field name) instead of throwing a hook-order error, and NumberInput/Slider keep their label pointing at the input when the id changes; FormScopeMask is exported for wrappers that scope nested inputs the way RadioGroup/CheckboxGroup do — a bare FormContext.Provider override no longer hides the surrounding form's presentation props (labelPosition, id prefix), render FormScopeMask instead; every form-attachable input now accepts a form instance in form in the published types (react-aria's DOM form attribute type used to win for text, number, checkbox, switch, radio group, slider, date and time inputs when compiled with real react-aria types).

  • #1409 9c7275f4 Thanks @tenphi! - Support modern Form controllers in named inputs and custom controls using useFieldProps. Field subscriptions update only the affected input; registration happens after commit, supports dynamic names and explicit controllers, and preserves values through Strict Mode replay. Add preserve and isEqual field options and unique accessible ids for duplicate modern fields. Form.Item remains legacy-only.

  • #1411 7d01b16b Thanks @tenphi! - Infer modern Form controller values from literal keys and nested tuple paths, while retaining support for dynamic field names. Preserve inline callback inference for both Form backends and existing legacy validator shapes. Add tested public API examples and a per-form migration guide covering subscriptions, conditional values, async defaults, and custom validation.

  • #1408 0bb4073f Thanks @tenphi! - Add the modern Form controller and React subscription APIs: Form.useController, Form.useSelector, Form.Subscribe, and Form.useControllerContext. Modern roots now provide controller and presentation context with immutable state, explicit value/default commands, selector equality, and hydration support. Existing forms remain on the legacy backend; modern input binding and submission callbacks are not available yet.

  • #1410 f5971ee8 Thanks @tenphi! - Add modern Form validation and submission: cancellable async rules, validation delays, deterministic errors, root callback bindings, and guarded submission of active or retained values. Modern fields support ReactNode errors, rulesKey, and errorPolicy; Form.Submit, Form.Reset, and Form.SubmitError now subscribe to modern state. Native action forms preserve browser submission. Add compiled and uncompiled React 18/19 contract checks.