# `TryOnOptions`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

Interface · `import type { TryOnOptions } from '@holostep-configurators/runtime-client/contract';` · labs, `@experimental` · since 2.0.0 · section 16. Capture, export, AR

What `tryOn` takes.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="mode"></a>[`mode?`](TryOnOptions.mode.md) | property | 'auto' picks for this device, which is 'here'; 'here' this page; 'handoff' a phone: Holostep's hand-off screen shows a QR code of `returnUrl` (or this page's address) and the same link to copy, in `overlayRoot` or a… |
| <a id="ui"></a>[`ui?`](TryOnOptions.ui.md) | property | 'default' shows Holostep's screens; 'headless' (not offered yet) resolves 'unsupported'. |
| <a id="overlayroot"></a>[`overlayRoot?`](TryOnOptions.overlayRoot.md) | property | Your element for try-on's screens, as [`ActivateAROptions.overlayRoot`](ActivateAROptions.overlayRoot.md) is AR's: a positioned element the size of the try-on view; the camera picture and Holostep's screens are drawn in it and leave it when try-on closes. |
| <a id="returnurl"></a>[`returnUrl?`](TryOnOptions.returnUrl.md) | property | The link the hand-off's QR code carries, for 'handoff': an http(s) URL, absolute or read against this page (anything else rejects HoloInputError). |
| <a id="signal"></a>[`signal?`](TryOnOptions.signal.md) | property | Aborting closes try-on and rejects the call with AbortError. |

## Declaration

```ts
export interface TryOnOptions {
  mode?: 'auto' | 'here' | 'handoff';
  ui?: 'default' | 'headless';
  overlayRoot?: HTMLElement;
  returnUrl?: string;
  signal?: AbortSignal;
}
```

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `TryOnOptions` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | labs (`@experimental` at a stable path, reached through `has()` or `supports()`): it graduates when a second app uses it |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
