feat(protected-inputs): expose individual React collection refs - #2129
Conversation
|
|
* feat(protected-inputs): add per-field collection transport * fix: bound protected collection payloads and cancel pending actions * feat(protected-inputs): add individual React collection refs (#2129) * feat(protected-inputs): collect individual protected fields with refs * fix: settle protected collections when their component changes * chore: add minor changeset for protected input collection * fix(protected-inputs): bind collection lifecycle to committed props
Stack 2/2 in the SDK: based on #2128.
Behavior
CrossmintProtectedInput renders an individual protected field and exposes ref.collect(). CrossmintProvider supplies the client key; the application supplies its external-auth JWT and owns labels, errors and submission.
Concurrent calls share one request. Auth/descriptor changes and frame reloads supersede pending results. The hosted frame reports its height; a paint gutter preserves complete borders while aligning with ordinary inputs. Remove the superseded password iframe component and migrate the demo.
Validation
Six React component tests pass, along with SDK lint. The actual React SDK was exercised across origins with real Basis Theory controls and simulated Crossmint registration. Full typecheck retains external dependency declaration failures.
Release boundary
The matching hosted iframe, SDK version consumption and deployed registration/release qualification remain required before release.
Matching hosted iframe: channel #31185, collection #31186.