Skip to main content
Urbicon UI
source

PasskeyManager

Admin panel for managing passkeys (WebAuthn credentials). Allows registering new passkeys and deleting existing ones.

01 Usage

Basic

The live preview runs against a mocked demo API (injected via the fetcher prop) — deleting passkeys works, registering explains that it needs a real backend. The snippet shows the production setup.

Passkeys

Loading...
<script lang="ts">
  import { PasskeyManager } from '@urbicon-ui/auth';
</script>

<PasskeyManager apiPath="/api/auth/passkey" />

02 Accessibility

Every delete button says what it deletes

The visible text is just "Delete", but each button carries aria-label with the passkey's name appended. A reader tabbing the list hears "Delete — MacBook Pro" rather than four identical buttons, and because the accessible name still begins with the visible word, voice control ("click Delete") keeps working.

Errors announce in place

WebAuthn failures — a cancelled prompt, an unsupported authenticator, a rejected registration — land in the always-mounted aria-live="polite" region above the list, so the outcome of a flow that happened inside the browser's own credential UI is reported back in the page.

The list is a list

Registered passkeys render as <ul> / <li> with the name and the creation/last-used dates as text. The "Add passkey" button is disabled with aria-busy while registration runs.

The credential prompt is the browser’s

Once registration starts, the platform takes over with its own dialog for Touch ID, Windows Hello or a security key. Its accessibility is the operating system's, not this component's — the component's job is to report what came back, which it does through the live region.

03 API Reference

7 props
Prop
Type
Default
Description

04 Types

Local type definitions used by this component.

5 types
Name
Kind
Category
Used by
Description

05 Installation

Import

import { PasskeyManager } from '@urbicon-ui/auth';