feat(react-select): port complete public surface (#541)
* feat(bindings): port react-transition-group * fix(bindings): address transition parity feedback (#487) * fix(bindings): make group updates synchronous (#487) * fix(bindings): register transition group integrations (#487) * fix(bindings): refresh transition parity evidence (#487) * fix(bindings): guard null transition refs (#487) * fix(bindings): format transition parity inventory (#487) * fix(react-transition-group): preserve transition state * fix(ci): format TransitionGroup source * fix(ci): refresh transition parity lock hash * docs: refresh package inventory * docs: refresh binding parity gaps * docs: refresh binding status * fix(react-transition-group): refresh stable child flags * chore(evals): refresh transition group corpus * fix(ci): refresh transition parity evidence * fix(ci): format transition parity inventories * feat(react-select): add foundation and default components * feat(react-select): port managed option hooks * feat(react-select): port Select and composed entrypoints * feat(react-select): add nonce and public type parity * feat(react-select): match menu placement and keyboard navigation * feat(react-select): match accessibility and scroll behavior * feat(react-select): match touch interaction behavior * feat(react-select): match multi-value navigation * feat(react-select): match input and form events * feat(react-select): match pointer selection behavior * feat(react-select): match mount focus behavior * feat(react-select): complete exact binding * fix(react-select): register migration rewrites (#541) * fix(react-select): enforce public type parity * chore(ci): refresh react-parity evidence after main merge Regenerate lockfile hashes and inventory for react-select. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ci): refresh react-parity evidence after main merge Regenerate lockfile hashes and inventory for react-select. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ci): refresh react-parity evidence after main merge Regenerate lockfile hashes and inventory for react-select. * perf: speed up server-rendered HTML escaping (#629) * perf: skip unchanged conditional keyed rows (#628) * perf: skip unchanged conditional keyed rows * fix: exclude Activity boundaries from keyed row memoization * fix(ci): prevent usehooks hydration timeout * fix(react-select): resolve Bugbot keyed-list and selection regressions Always call setValue on single-select reselection, merge Fade innerProps, and add stable keys for menu, form, and animated value-container children. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): pass animated value children without Fragment wrappers Octane Children.toArray does not flatten Fragment descriptors, so MultiValueContainer could not clone transition props onto MultiValue and Placeholder children. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): pass inspectable animated value children Restore the needsInspectableValueChildren path so TransitionGroup receives an enumerable children array instead of a compiler opaque block, without Fragment wrappers that Children.toArray cannot flatten. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-transition-group): scaffold upstream parity lanes Run the pinned React suite unchanged and separate adapted parity evidence from ordinary Octane conformance coverage. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): add pristine upstream Jest lane Run the vendored react-select suites unchanged as a required parity oracle, drop whole-project parity ownership so repo-authored tests stay ordinary, and refresh neighboring vitest.config.js evidence hashes after the main merge. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-transition-group): complete adapted upstream suite Port every applicable upstream runtime case one-for-one so the adapted lane now provides exhaustive parity evidence with no pending dispositions. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): start adapted upstream suite Port the smaller upstream suites into a verified Octane lane and account for every remaining pristine identity with fail-closed controls. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): adapt core Select behavior Port 102 upstream Select cases covering props, filtering, inputs, callbacks, accessibility, and interactions, reducing the unadapted inventory to 115 identities. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-transition-group): address parity review feedback Strengthen adapted lifecycle scenarios and keep parity evidence mapped to the files that execute each upstream case. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): expand Select upstream coverage Adapt 66 more Select cases across keyboard navigation, callbacks, forms, accessibility, custom components, and value handling, leaving 49 pristine identities pending. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): complete adapted upstream suite Port the remaining one-for-one adapted cases to 248 of 255 pristine identities, keep seven Select blockers fail-closed with rationales, and refresh the parity inventories and hashes for the review feedback. Co-authored-by: Cursor <cursoragent@cursor.com> * test(react-select): stabilize StateManaged snapshot ids Move the defaults snapshot before other mounts so instance ids stay at react-select-1 regardless of suite filtering or test order. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): match upstream focus and clear behavior Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): mark parity provenance verified Unverified provenance left required React parity lanes validate-only; flip to verified so CI executes them. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-transition-group): add type lanes for verified parity Absent upstream type suites still require repo-authored pristine-types and adapted-types evidence before verification can be verified; add consumer-shaped typetests and refresh lockfile hashes. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-transition-group): restore adapted upstream oracles Address leonidaz parity review: node-env SSR adapted project, silent cleanup console spy, mid-appear null child, childFactory reentry, appear checkpoint, and full SwitchTransition callback traces. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): address parity inventory review Split the transition-group SSR adaptation into its own required lane, inventory the three canonical react-select skips as not-applicable, classify Select.test.ts under fail-closed discovery, and reconcile UPSTREAM.md with the verified counts. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(react-select): close leonidaz parity control gaps Add assertion-group type parity verifiers and typetest ledger coverage for react-select and react-transition-group, record exact oracle versions, and drop Vitest wrappers around the direct jest-full pristine lanes. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(select): close type-parity controls and drop react prefix Verify mapped typetest fixtures belong to the pristine/adapted compiler programs, record the exact @types/react type-oracle pins, and rename the Octane package to @octanejs/select per maintainer naming guidance. Co-authored-by: Cursor <cursoragent@cursor.com> * chore: refresh parity hashes after select rename and main merge Co-authored-by: Cursor <cursoragent@cursor.com> * fix(select): route differential tests to react-parity and pin type oracle Move the six react-octane-differential SSR suites into a dedicated select-differential Vitest project under testExecution.group react-parity, and replace catalog:default @types/react pins with literal 19.2.17/19.2.3. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(select): reconcile multi-value focus and key inspectable children Match upstream focusedValue remapping on value updates and give the animated ValueContainer path stable keys without breaking MultiValue child inspection. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(select): flatten keyed fragments in animated ValueContainer Unwrap inspectable ValueContainer's keyed Fragment slots before TransitionGroup and MultiValueContainer inspect child types. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(select): preserve animated child identities (#541) - retain fragment and inner child keys when flattening inspectable children - cover animated single-select value and input rendering Note: pre-existing typecheck failures in packages/select/src/animated/transitions.tsrx were not addressed by this PR. * chore: format refreshed parity evidence * fix(select): validate without Node ambient types * fix(select): register browser suite in heavy CI * chore: refresh eval corpus hashes * fix(select): reconcile async state transactionally * chore: refresh merged parity evidence * fix(select): address parity review findings --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: domgan-oai <domgan@openai.com> Co-authored-by: Dominic Gannaway <trueadm@users.noreply.github.com>
J
Jon Wheeler committed
e7384d4931997f2cbe9232fe888cb6221d01069c
Parent: 957b910
Committed by GitHub <noreply@github.com>
on 8/28/2026, 2:51:31 PM