The underlying Secure Fields instance — Task 5's field primitives register against it.
null until the provider's mount effect has constructed it. It cannot be
built during render: new SecureFields() mutates the document (see the
effect in SecureCardProvider), and React does not promise a render-phase
factory runs exactly once. Consumers that reach for it directly must
null-check; the field primitives already wait for it.
vault() then complete().
True once all required fields are registered and submit() may be called.
Mount point for Gr4vy's own 3DS challenge iframe (addThreeDSecure).
Register this once, alongside the card fields; it is only actually
mounted if complete() gets requires_action.
Abandons an in-progress challenge (e.g. the buyer closed the challenge UI). Only meaningful while
status === 'challenging'; settlescomplete()'s promise witherror.code === 'three_ds_abandoned', kept distinct from a processor decline code.