SIGN IN SIGN UP

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