@mochabug/adapt-web
Version:
Browser client library for Adapt automation platform
84 lines (83 loc) • 3.1 kB
TypeScript
import type { AutomationClient } from "@mochabug/adapt-core";
import type { CapWidgetI18n } from "./types.js";
/**
* `<adapt-cap>` custom element for Cap.js proof-of-work challenges.
*
* Renders a Cap.js widget that handles challenge creation, solving, and redemption.
* The widget is styled through CSS custom properties. Avoid styling Cap.js
* internals directly; this package only touches Cap's attribution node so
* Adapt embeds do not show Cap branding.
*
* The widget initializes when both `automation-id` (attribute) and `client` (JS property)
* are set. It auto-destroys after a successful solve.
*
* @example
* ```html
* <adapt-cap automation-id="auto-123" dark-mode></adapt-cap>
*
* <script type="module">
* import '@mochabug/adapt-web/elements';
* import { createConnectClient } from '@mochabug/adapt-core/connect';
*
* const el = document.querySelector('adapt-cap');
* el.client = createConnectClient({ id: 'auto-123' });
*
* el.addEventListener('adapt-cap-solve', (e) => {
* console.log('Token:', e.detail.token);
* });
* </script>
* ```
*
* @fires adapt-cap-solve - Dispatched when the challenge is solved. `detail: { token: string, expires: Date }`
* @fires adapt-cap-error - Dispatched on error. `detail: { error: Error }`
*/
declare const BaseElement: {
new (): HTMLElement;
prototype: HTMLElement;
};
export declare class AdaptCapElement extends BaseElement {
constructor();
static get observedAttributes(): readonly string[];
private _widget;
private _client;
/**
* Custom label overrides for the Cap.js widget.
* Must be set before `client` — changing after init has no effect.
*/
i18n: CapWidgetI18n | undefined;
/**
* Called when the challenge is solved (alternative to the `adapt-cap-solve` event).
*
* @param token - Challenge token to pass to `startSession` / `run`
* @param expires - When the token expires
*/
onSolveCallback: ((token: string, expires: Date) => void) | undefined;
/**
* Called when solving fails (alternative to the `adapt-cap-error` event).
*/
onErrorCallback: ((error: Error) => void) | undefined;
/**
* The automation client used for challenge API calls.
* Created via `createConnectClient({ id })` from `@mochabug/adapt-core/connect`.
*
* Setting this property (re)initializes the widget when `automation-id` is also present.
*/
get client(): AutomationClient | undefined;
set client(v: AutomationClient | undefined);
/**
* Reflects the `automation-id` attribute. Changing this recreates the widget.
*/
get automationId(): string | null;
set automationId(v: string | null);
/**
* Reflects the `dark-mode` attribute. Can be toggled at runtime.
*/
get darkMode(): boolean;
set darkMode(v: boolean);
connectedCallback(): void;
disconnectedCallback(): void;
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
private _tryInit;
private _destroyWidget;
}
export {};