import NebulaElement from '../../internal/nebula-element.js'; import NuButton from '../button/button.component.js'; import NuIcon from '../icon/icon.component.js'; import type { CSSResultGroup } from 'lit'; /** * @summary A button component for WebAuthn-based user registration. * @documentation https://nebulaui.org/components/register-button * @status experimental * @since 2.0 * * @dependency nu-button * @dependency nu-icon * * @event nu-register-start - Emitted when registration process begins. * @event nu-register-success - Emitted when registration succeeds with credential data. * @event nu-register-error - Emitted when registration fails with error details. * * @slot - The button's label text. * @slot prefix - Icon or element before the label. * @slot suffix - Icon or element after the label. * * @csspart base - The component's base wrapper. * @csspart button - The internal button element. * * @cssproperty --nu-register-button-color - The button text color. */ export default class NuRegisterButton extends NebulaElement { static styles: CSSResultGroup; static dependencies: { 'nu-button': typeof NuButton; 'nu-icon': typeof NuIcon; }; /** The button variant. */ variant: 'default' | 'primary' | 'success' | 'neutral' | 'warning' | 'danger' | 'text'; /** The button size. */ size: 'small' | 'medium' | 'large'; /** Disables the button. */ disabled: boolean; /** Shows a loading spinner and disables the button. */ loading: boolean; /** The WebAuthn relying party ID. */ rpId: string; /** The WebAuthn relying party name. */ rpName: string; /** The user ID for registration. */ userId: string; /** The user name for registration. */ userName: string; /** The user display name for registration. */ userDisplayName: string; /** Timeout for WebAuthn operation in milliseconds. */ timeout: number; /** Require user verification (biometrics/PIN). */ userVerification: boolean; private registering; private handleRegister; private bufferToBase64; render(): import("lit").TemplateResult<1>; }