<np-passkey-register>
A
button component to register a new passkey for the user. Properties
| Name | Format | Required | Default | Description |
|---|---|---|---|---|
state | State | No | undefined | The component’s internal state. |
enum State { REGISTERING = "registering", // Registering the passkey REGISTERED = "registered", // Passkey has been registered ERROR = "error", // An error occurred}Methods
| Name | Description |
|---|---|
register() | Starts the registration flow programmatically. |
cancel() | Cancels the registration flow. |
Custom Events
| Name | Description | Type |
|---|---|---|
np:register | The passkey has been registered. | RegisterEvent |
np:error | An error occurred. | NoPwdError |
The np:register custom event detail is defined as follows:
interface RegisterEvent { kid: string; // The passkey's ID}The np:error custom event detail inherits from NoPwdError.
There are four types of errors:
if (event.detail instanceof WebauthnNotSupportedError) { // This browser doesn't support WebAuthn}
if (event.detail instanceof InvalidTokenError) { // The provided token is invalid (malformed or expired)}
if (event.detail instanceof NetworkError) { // No network connection}
if (event.detail instanceof UnexpectedError) { // An unexpected error occurred}Slots
| Name | Description |
|---|---|
| (default) | The button’s label. |
registering | Passkey registration in progress. |
registered | Passkey has been registered. |
error | An error occurred. |
Usage:
<!-- To override the default slot --><np-passkey-register>Login</np-passkey-register>
<!-- To override specific slots --><np-passkey-register> Login <span slot="registering">Please wait...</span> <span slot="registered">Done!</span> <span slot="error">Oops!</span></np-passkey-register>Parts
| Name | Description |
|---|---|
button | The component’s button wrapper. |
Usage:
/* To target only the default state */np-passkey-register:not([state])::part(button) { background-color: black; color: white;}
np-passkey-register[state="registering"]::part(button) { background-color: transparent; color: grey;}
np-passkey-register[state="error"]::part(button) { background-color: red; color: white;}