{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "better-auth-ui",
  "homepage": "https://better-auth-ui.com",
  "items": [
    {
      "name": "auth-provider",
      "type": "registry:component",
      "title": "Auth Provider",
      "description": "Wraps the Better Auth UI provider and mounts an ErrorToaster that surfaces query and mutation failures via sonner.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@tanstack/react-query",
        "better-auth"
      ],
      "registryDependencies": ["sonner"],
      "files": [
        {
          "path": "src/components/auth/auth-provider.tsx",
          "type": "registry:component",
          "target": "@components/auth/auth-provider.tsx"
        },
        {
          "path": "src/components/auth/error-toaster.tsx",
          "type": "registry:component",
          "target": "@components/auth/error-toaster.tsx"
        }
      ]
    },
    {
      "name": "additional-field",
      "type": "registry:component",
      "title": "Additional Field",
      "description": "Renders a configured additional user field on the sign-up form and user profile, with support for string, number, boolean, date, datetime, select, combobox, slider, and hidden types.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "date-fns",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "checkbox",
        "combobox",
        "field",
        "input",
        "input-group",
        "popover",
        "select",
        "slider",
        "switch",
        "textarea"
      ],
      "files": [
        {
          "path": "src/components/auth/additional-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/additional-field.tsx"
        }
      ]
    },
    {
      "name": "sign-in",
      "type": "registry:component",
      "title": "Sign In",
      "description": "A complete sign-in form component with email/password and social provider support.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "input",
        "input-group",
        "checkbox",
        "separator",
        "field",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/components/auth/sign-in.tsx",
          "type": "registry:component",
          "target": "@components/auth/sign-in.tsx"
        },
        {
          "path": "src/components/auth/provider-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-button.tsx"
        },
        {
          "path": "src/components/auth/provider-buttons.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-buttons.tsx"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        },
        {
          "path": "src/lib/auth/use-sign-in-continuation.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-sign-in-continuation.ts"
        },
        {
          "path": "src/lib/auth/two-factor-methods.ts",
          "type": "registry:lib",
          "target": "@lib/auth/two-factor-methods.ts"
        }
      ]
    },
    {
      "name": "anonymous",
      "type": "registry:component",
      "title": "Anonymous",
      "description": "Adds a Continue as guest button backed by Better Auth's anonymous plugin.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": ["button", "spinner"],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/anonymous-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/anonymous-plugin.ts"
        },
        {
          "path": "src/components/auth/anonymous/anonymous-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/anonymous/anonymous-button.tsx"
        }
      ]
    },
    {
      "name": "last-login-method",
      "type": "registry:component",
      "title": "Last Login Method",
      "description": "Adds a localized last-used indicator to email and social sign-in methods tracked by Better Auth.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/sign-in.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/last-login-method-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/last-login-method-plugin.ts"
        }
      ]
    },
    {
      "name": "one-tap",
      "type": "registry:item",
      "title": "Google One Tap",
      "description": "Updates the authentication surfaces with the headless prompt slot used by the Google One Tap UI plugin.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/sign-in.json",
        "https://better-auth-ui.com/r/radix-nova/sign-up.json"
      ],
      "files": []
    },
    {
      "name": "sign-up",
      "type": "registry:component",
      "title": "Sign Up",
      "description": "A complete sign-up form component with name, email, password fields, and social provider support.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@tanstack/react-pacer",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "input",
        "field",
        "input-group",
        "sonner",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/additional-field.json"
      ],
      "files": [
        {
          "path": "src/components/auth/sign-up.tsx",
          "type": "registry:component",
          "target": "@components/auth/sign-up.tsx"
        },
        {
          "path": "src/components/auth/provider-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-button.tsx"
        },
        {
          "path": "src/components/auth/provider-buttons.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-buttons.tsx"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        }
      ]
    },
    {
      "name": "email-otp",
      "type": "registry:component",
      "title": "Email OTP",
      "description": "Email OTP plugin: passwordless sign-in with an emailed code, plus code-based replacements for email verification, password reset, and email changes.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "input-otp",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "field",
        "https://better-auth-ui.com/r/radix-nova/account-settings.json",
        "input",
        "input-group",
        "input-otp",
        "skeleton",
        "sonner",
        "spinner",
        "tooltip"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/email-otp-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/email-otp-plugin.ts"
        },
        {
          "path": "src/lib/auth/use-resend-cooldown.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-resend-cooldown.ts"
        },
        {
          "path": "src/lib/auth/use-sign-in-continuation.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-sign-in-continuation.ts"
        },
        {
          "path": "src/lib/auth/two-factor-methods.ts",
          "type": "registry:lib",
          "target": "@lib/auth/two-factor-methods.ts"
        },
        {
          "path": "src/components/auth/otp-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/otp-field.tsx"
        },
        {
          "path": "src/components/auth/email-otp/email-otp.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/email-otp.tsx"
        },
        {
          "path": "src/components/auth/email-otp/email-otp-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/email-otp-button.tsx"
        },
        {
          "path": "src/components/auth/email-otp/verify-email-otp.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/verify-email-otp.tsx"
        },
        {
          "path": "src/components/auth/email-otp/forgot-password-otp.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/forgot-password-otp.tsx"
        },
        {
          "path": "src/components/auth/email-otp/reset-password-otp.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/reset-password-otp.tsx"
        },
        {
          "path": "src/components/auth/email-otp/change-email-otp.tsx",
          "type": "registry:component",
          "target": "@components/auth/email-otp/change-email-otp.tsx"
        },
        {
          "path": "src/components/auth/open-email-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/open-email-button.tsx"
        },
        {
          "path": "src/components/auth/provider-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-button.tsx"
        },
        {
          "path": "src/components/auth/provider-buttons.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-buttons.tsx"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        }
      ]
    },
    {
      "name": "phone-number",
      "type": "registry:component",
      "title": "Phone Number",
      "description": "Phone-number plugin with verification-code and password sign-in, password recovery, and verified phone-number management.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "input-otp",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "button",
        "card",
        "checkbox",
        "field",
        "https://better-auth-ui.com/r/radix-nova/account-settings.json",
        "input",
        "input-group",
        "input-otp",
        "skeleton",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/phone-number-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/phone-number-plugin.ts"
        },
        {
          "path": "src/lib/auth/use-resend-cooldown.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-resend-cooldown.ts"
        },
        {
          "path": "src/lib/auth/use-sign-in-continuation.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-sign-in-continuation.ts"
        },
        {
          "path": "src/components/auth/otp-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/otp-field.tsx"
        },
        {
          "path": "src/components/auth/phone-number/phone-number.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/phone-number.tsx"
        },
        {
          "path": "src/components/auth/phone-number/phone-number-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/phone-number-button.tsx"
        },
        {
          "path": "src/components/auth/phone-number/forgot-phone-number-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/forgot-phone-number-password.tsx"
        },
        {
          "path": "src/components/auth/phone-number/reset-phone-number-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/reset-phone-number-password.tsx"
        },
        {
          "path": "src/components/auth/phone-number/change-phone-number.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/change-phone-number.tsx"
        },
        {
          "path": "src/components/auth/phone-number/remove-phone-number-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/phone-number/remove-phone-number-dialog.tsx"
        },
        {
          "path": "src/components/auth/provider-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-button.tsx"
        },
        {
          "path": "src/components/auth/provider-buttons.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-buttons.tsx"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        }
      ]
    },
    {
      "name": "magic-link",
      "type": "registry:component",
      "title": "Magic Link",
      "description": "Magic-link plugin: passwordless email sign-in form, toggle button between password and magic-link routes, and the AuthPlugin scaffolding that registers the view with `<Auth>`.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "input",
        "field",
        "separator",
        "sonner",
        "spinner",
        "tooltip"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/magic-link-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/magic-link-plugin.ts"
        },
        {
          "path": "src/components/auth/magic-link.tsx",
          "type": "registry:component",
          "target": "@components/auth/magic-link.tsx"
        },
        {
          "path": "src/components/auth/magic-link-sent.tsx",
          "type": "registry:component",
          "target": "@components/auth/magic-link-sent.tsx"
        },
        {
          "path": "src/components/auth/magic-link-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/magic-link-button.tsx"
        },
        {
          "path": "src/components/auth/provider-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-button.tsx"
        },
        {
          "path": "src/components/auth/provider-buttons.tsx",
          "type": "registry:component",
          "target": "@components/auth/provider-buttons.tsx"
        },
        {
          "path": "src/components/auth/open-email-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/open-email-button.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        }
      ]
    },
    {
      "name": "oauth-provider",
      "type": "registry:component",
      "title": "OAuth Provider",
      "description": "OAuth Provider plugin: authorization consent screen, prompt=create sign-up continuation, account chooser, and a connected applications security card for Better Auth authorization requests.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@better-auth/oauth-provider",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "avatar",
        "badge",
        "button",
        "card",
        "empty",
        "item",
        "separator",
        "skeleton",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/sign-up.json",
        "https://better-auth-ui.com/r/radix-nova/user-avatar.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/oauth-provider-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/oauth-provider-plugin.ts"
        },
        {
          "path": "src/components/auth/oauth-provider/oauth-consent.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/oauth-consent.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/oauth-sign-up.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/oauth-sign-up.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/oauth-select-account.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/oauth-select-account.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/authorized-applications.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/authorized-applications.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/authorized-application.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/authorized-application.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/authorized-applications-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/authorized-applications-empty.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/authorized-application-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/authorized-application-skeleton.tsx"
        },
        {
          "path": "src/components/auth/oauth-provider/remove-authorization-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/oauth-provider/remove-authorization-dialog.tsx"
        }
      ]
    },
    {
      "name": "device-authorization",
      "type": "registry:component",
      "title": "Device Authorization",
      "description": "Device authorization plugin: code entry, sign-in continuation, and approve or deny actions for Better Auth device requests.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "field",
        "input-otp",
        "separator",
        "spinner"
      ],
      "files": [
        {
          "path": "src/lib/auth/device-authorization-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/device-authorization-plugin.ts"
        },
        {
          "path": "src/components/auth/device-authorization/device-authorization.tsx",
          "type": "registry:component",
          "target": "@components/auth/device-authorization/device-authorization.tsx"
        }
      ]
    },
    {
      "name": "username",
      "type": "registry:component",
      "title": "Username",
      "description": "Username plugin: username-based sign-in form and availability checking field. Registers a sign-in view that accepts both username and email, and a username field with real-time availability checking rendered on the sign-up form.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@tanstack/react-pacer",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "checkbox",
        "field",
        "input",
        "input-group",
        "separator",
        "sonner",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/additional-field.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/username-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/username-plugin.ts"
        },
        {
          "path": "src/components/auth/username/username-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/username/username-field.tsx"
        },
        {
          "path": "src/components/auth/username/sign-in-username.tsx",
          "type": "registry:component",
          "target": "@components/auth/username/sign-in-username.tsx"
        },
        {
          "path": "src/components/auth/last-login-method/last-used-badge.tsx",
          "type": "registry:component",
          "target": "@components/auth/last-login-method/last-used-badge.tsx"
        },
        {
          "path": "src/lib/auth/use-sign-in-continuation.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-sign-in-continuation.ts"
        },
        {
          "path": "src/lib/auth/two-factor-methods.ts",
          "type": "registry:lib",
          "target": "@lib/auth/two-factor-methods.ts"
        }
      ]
    },
    {
      "name": "passkey",
      "type": "registry:component",
      "title": "Passkey",
      "description": "Passkey plugin: WebAuthn sign-in button and passkey management card. Registers a passkey sign-in button on the sign-in form and a Passkeys security card in account settings.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@better-auth/passkey",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "button",
        "card",
        "dialog",
        "empty",
        "field",
        "input",
        "item",
        "separator",
        "skeleton",
        "spinner"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/passkey-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/passkey-plugin.ts"
        },
        {
          "path": "src/components/auth/passkey/passkey-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/passkey-button.tsx"
        },
        {
          "path": "src/components/auth/passkey/add-passkey-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/add-passkey-dialog.tsx"
        },
        {
          "path": "src/components/auth/passkey/delete-passkey-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/delete-passkey-dialog.tsx"
        },
        {
          "path": "src/components/auth/passkey/passkeys-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/passkeys-empty.tsx"
        },
        {
          "path": "src/components/auth/passkey/passkey-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/passkey-skeleton.tsx"
        },
        {
          "path": "src/components/auth/passkey/passkeys.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/passkeys.tsx"
        },
        {
          "path": "src/components/auth/passkey/passkey.tsx",
          "type": "registry:component",
          "target": "@components/auth/passkey/passkey.tsx"
        }
      ]
    },
    {
      "name": "two-factor",
      "type": "registry:component",
      "title": "Two-Factor",
      "description": "Two-factor plugin: the post-password challenge for authenticator, emailed, and backup codes, plus the settings card for enrollment and backup-code management.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "input-otp",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "button",
        "card",
        "checkbox",
        "dialog",
        "field",
        "input",
        "input-group",
        "input-otp",
        "skeleton",
        "sonner",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/sign-in.json",
        "https://better-auth-ui.com/r/radix-nova/username.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/two-factor-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/two-factor-plugin.ts"
        },
        {
          "path": "src/lib/auth/use-resend-cooldown.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-resend-cooldown.ts"
        },
        {
          "path": "src/lib/auth/use-sign-in-continuation.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-sign-in-continuation.ts"
        },
        {
          "path": "src/lib/auth/two-factor-methods.ts",
          "type": "registry:lib",
          "target": "@lib/auth/two-factor-methods.ts"
        },
        {
          "path": "src/lib/auth/use-two-factor-password.ts",
          "type": "registry:lib",
          "target": "@lib/auth/use-two-factor-password.ts"
        },
        {
          "path": "src/components/auth/otp-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/otp-field.tsx"
        },
        {
          "path": "src/components/auth/two-factor/two-factor-challenge.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/two-factor-challenge.tsx"
        },
        {
          "path": "src/components/auth/two-factor/two-factor-settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/two-factor-settings.tsx"
        },
        {
          "path": "src/components/auth/two-factor/enable-two-factor-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/enable-two-factor-dialog.tsx"
        },
        {
          "path": "src/components/auth/two-factor/disable-two-factor-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/disable-two-factor-dialog.tsx"
        },
        {
          "path": "src/components/auth/two-factor/regenerate-backup-codes-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/regenerate-backup-codes-dialog.tsx"
        },
        {
          "path": "src/components/auth/two-factor/backup-codes.tsx",
          "type": "registry:component",
          "target": "@components/auth/two-factor/backup-codes.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        }
      ]
    },
    {
      "name": "api-key",
      "type": "registry:component",
      "title": "API Key",
      "description": "API Key plugin: list, create, copy, and revoke API keys. Registers an API Keys security card in account settings.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@better-auth/api-key",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "button",
        "card",
        "dialog",
        "empty",
        "field",
        "input",
        "input-group",
        "item",
        "label",
        "select",
        "separator",
        "skeleton",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/api-key-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/api-key-plugin.ts"
        },
        {
          "path": "src/components/auth/api-key/api-keys.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/api-keys.tsx"
        },
        {
          "path": "src/components/auth/api-key/api-key.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/api-key.tsx"
        },
        {
          "path": "src/components/auth/api-key/api-keys-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/api-keys-empty.tsx"
        },
        {
          "path": "src/components/auth/api-key/api-key-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/api-key-skeleton.tsx"
        },
        {
          "path": "src/components/auth/api-key/create-api-key-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/create-api-key-dialog.tsx"
        },
        {
          "path": "src/components/auth/api-key/new-api-key-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/new-api-key-dialog.tsx"
        },
        {
          "path": "src/components/auth/api-key/delete-api-key-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/delete-api-key-dialog.tsx"
        },
        {
          "path": "src/components/auth/api-key/organization-api-keys.tsx",
          "type": "registry:component",
          "target": "@components/auth/api-key/organization-api-keys.tsx"
        }
      ]
    },
    {
      "name": "admin",
      "type": "registry:component",
      "title": "Admin",
      "description": "Admin plugin integration that adds a stop-impersonating action to the user button while an administrator is impersonating another user.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "dropdown-menu",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/user-button.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/admin-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/admin-plugin.ts"
        },
        {
          "path": "src/components/auth/admin/stop-impersonating.tsx",
          "type": "registry:component",
          "target": "@components/auth/admin/stop-impersonating.tsx"
        }
      ]
    },
    {
      "name": "multi-session",
      "type": "registry:component",
      "title": "Multi Session",
      "description": "Multi-session plugin: Enable multiple concurrent sessions with account switching. Registers account management cards in account settings and a switch account submenu in the user button.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "dropdown-menu",
        "item",
        "separator",
        "sonner",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/user-view.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/multi-session-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/multi-session-plugin.ts"
        },
        {
          "path": "src/components/auth/multi-session/manage-accounts.tsx",
          "type": "registry:component",
          "target": "@components/auth/multi-session/manage-accounts.tsx"
        },
        {
          "path": "src/components/auth/multi-session/manage-account.tsx",
          "type": "registry:component",
          "target": "@components/auth/multi-session/manage-account.tsx"
        },
        {
          "path": "src/components/auth/multi-session/switch-account-submenu.tsx",
          "type": "registry:component",
          "target": "@components/auth/multi-session/switch-account-submenu.tsx"
        },
        {
          "path": "src/components/auth/multi-session/switch-account-submenu-content.tsx",
          "type": "registry:component",
          "target": "@components/auth/multi-session/switch-account-submenu-content.tsx"
        },
        {
          "path": "src/components/auth/multi-session/switch-account-submenu-item.tsx",
          "type": "registry:component",
          "target": "@components/auth/multi-session/switch-account-submenu-item.tsx"
        }
      ]
    },
    {
      "name": "organization",
      "type": "registry:component",
      "title": "Organization",
      "description": "Organization plugin: multi-tenant organization management with members, invitations, and roles. Registers an organizations tab in account settings, mounts a full `<Organization />` shell with settings and people tabs, and an `<OrganizationSwitcher />` dropdown for the header.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@tanstack/react-pacer",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "avatar",
        "badge",
        "button",
        "card",
        "dialog",
        "dropdown-menu",
        "empty",
        "field",
        "input",
        "input-group",
        "item",
        "label",
        "select",
        "separator",
        "skeleton",
        "sonner",
        "spinner",
        "table",
        "tabs",
        "https://better-auth-ui.com/r/radix-nova/user-view.json"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/organization-plugin.tsx",
          "type": "registry:lib",
          "target": "@lib/auth/organization-plugin.tsx"
        },
        {
          "path": "src/components/auth/organization/organization.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-switcher.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-switcher.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-settings.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-people.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-people.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-profile.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-profile.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-danger-zone.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-danger-zone.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-members.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-members.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-member-row.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-member-row.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-member-row-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-member-row-skeleton.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-invitations.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-invitations.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-invitation-row.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-invitation-row.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-invitation-row-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-invitation-row-skeleton.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-invitations-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-invitations-empty.tsx"
        },
        {
          "path": "src/components/auth/organization/organizations.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organizations.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-row.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-row.tsx"
        },
        {
          "path": "src/components/auth/organization/organizations-settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organizations-settings.tsx"
        },
        {
          "path": "src/components/auth/organization/organizations-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organizations-empty.tsx"
        },
        {
          "path": "src/components/auth/organization/user-invitations.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/user-invitations.tsx"
        },
        {
          "path": "src/components/auth/organization/user-invitation-row.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/user-invitation-row.tsx"
        },
        {
          "path": "src/components/auth/organization/user-invitation-row-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/user-invitation-row-skeleton.tsx"
        },
        {
          "path": "src/components/auth/organization/user-invitations-empty.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/user-invitations-empty.tsx"
        },
        {
          "path": "src/components/auth/organization/create-organization-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/create-organization-dialog.tsx"
        },
        {
          "path": "src/components/auth/organization/invite-member-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/invite-member-dialog.tsx"
        },
        {
          "path": "src/components/auth/organization/delete-organization-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/delete-organization-dialog.tsx"
        },
        {
          "path": "src/components/auth/organization/delete-organization-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/delete-organization-skeleton.tsx"
        },
        {
          "path": "src/components/auth/organization/delete-organization.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/delete-organization.tsx"
        },
        {
          "path": "src/components/auth/organization/leave-organization-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/leave-organization-dialog.tsx"
        },
        {
          "path": "src/components/auth/organization/leave-organization.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/leave-organization.tsx"
        },
        {
          "path": "src/components/auth/organization/remove-member-dialog.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/remove-member-dialog.tsx"
        },
        {
          "path": "src/components/auth/organization/change-organization-logo.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/change-organization-logo.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-logo.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-logo.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-view.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-view.tsx"
        },
        {
          "path": "src/components/auth/organization/organization-view-skeleton.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/organization-view-skeleton.tsx"
        },
        {
          "path": "src/components/auth/organization/slug-field.tsx",
          "type": "registry:component",
          "target": "@components/auth/organization/slug-field.tsx"
        }
      ]
    },
    {
      "name": "theme",
      "type": "registry:component",
      "title": "Theme",
      "description": "Theme plugin: theme-library agnostic theme selection. Registers an Appearance card in account settings and a theme toggle in the user button. Pass `useTheme` from your theme library (e.g. next-themes) or static `setTheme`.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "lucide-react"
      ],
      "registryDependencies": [
        "card",
        "dropdown-menu",
        "field",
        "radio-group",
        "tabs"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/theme-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/theme-plugin.ts"
        },
        {
          "path": "src/components/auth/theme/appearance.tsx",
          "type": "registry:component",
          "target": "@components/auth/theme/appearance.tsx"
        },
        {
          "path": "src/components/auth/theme/theme-toggle-item.tsx",
          "type": "registry:component",
          "target": "@components/auth/theme/theme-toggle-item.tsx"
        }
      ]
    },
    {
      "name": "delete-user",
      "type": "registry:component",
      "title": "Delete User",
      "description": "Delete-user plugin: danger zone with DeleteAccount card and confirmation dialog. Registers a DangerZone security card in account settings when the plugin is registered.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "alert-dialog",
        "button",
        "card",
        "field",
        "input",
        "input-group",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/lib/auth/auth-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/auth-plugin.ts"
        },
        {
          "path": "src/lib/auth/delete-user-plugin.ts",
          "type": "registry:lib",
          "target": "@lib/auth/delete-user-plugin.ts"
        },
        {
          "path": "src/components/auth/delete-user/danger-zone.tsx",
          "type": "registry:component",
          "target": "@components/auth/delete-user/danger-zone.tsx"
        },
        {
          "path": "src/components/auth/delete-user/delete-account.tsx",
          "type": "registry:component",
          "target": "@components/auth/delete-user/delete-account.tsx"
        }
      ]
    },
    {
      "name": "forgot-password",
      "type": "registry:component",
      "title": "Forgot Password",
      "description": "A form component for requesting a password reset link via email.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "input",
        "field",
        "sonner",
        "spinner",
        "tooltip"
      ],
      "files": [
        {
          "path": "src/components/auth/forgot-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/forgot-password.tsx"
        },
        {
          "path": "src/components/auth/reset-link-sent.tsx",
          "type": "registry:component",
          "target": "@components/auth/reset-link-sent.tsx"
        },
        {
          "path": "src/components/auth/open-email-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/open-email-button.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        }
      ]
    },
    {
      "name": "reset-password",
      "type": "registry:component",
      "title": "Reset Password",
      "description": "A form component for resetting password with a token from the URL.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "field",
        "input-group",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/components/auth/reset-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/reset-password.tsx"
        }
      ]
    },
    {
      "name": "verify-email",
      "type": "registry:component",
      "title": "Verify Email",
      "description": "A page prompting the user to verify their email, with a button to open their email provider and a resend button rate-limited by a cooldown timer.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "field",
        "sonner",
        "spinner",
        "tooltip"
      ],
      "files": [
        {
          "path": "src/components/auth/verify-email.tsx",
          "type": "registry:component",
          "target": "@components/auth/verify-email.tsx"
        },
        {
          "path": "src/components/auth/open-email-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/open-email-button.tsx"
        },
        {
          "path": "src/components/auth/use-is-hydrated.ts",
          "type": "registry:component",
          "target": "@components/auth/use-is-hydrated.ts"
        }
      ]
    },
    {
      "name": "auth-redirect",
      "type": "registry:component",
      "title": "Auth Redirect",
      "description": "A session-aware redirect view that safely continues authenticated users to a same-origin target or sends them through sign in first.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": ["spinner"],
      "files": [
        {
          "path": "src/components/auth/auth-redirect.tsx",
          "type": "registry:component",
          "target": "@components/auth/auth-redirect.tsx"
        }
      ]
    },
    {
      "name": "sign-out",
      "type": "registry:component",
      "title": "Sign Out",
      "description": "A component that signs the user out when mounted and displays a loading state.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": ["card", "spinner"],
      "files": [
        {
          "path": "src/components/auth/sign-out.tsx",
          "type": "registry:component",
          "target": "@components/auth/sign-out.tsx"
        }
      ]
    },
    {
      "name": "auth",
      "type": "registry:component",
      "title": "Auth",
      "description": "A unified authentication component that renders the appropriate auth view based on path or view prop.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest"
      ],
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/auth-provider.json",
        "https://better-auth-ui.com/r/radix-nova/sign-in.json",
        "https://better-auth-ui.com/r/radix-nova/sign-up.json",
        "https://better-auth-ui.com/r/radix-nova/forgot-password.json",
        "https://better-auth-ui.com/r/radix-nova/reset-password.json",
        "https://better-auth-ui.com/r/radix-nova/verify-email.json",
        "https://better-auth-ui.com/r/radix-nova/auth-redirect.json",
        "https://better-auth-ui.com/r/radix-nova/sign-out.json"
      ],
      "files": [
        {
          "path": "src/components/auth/auth.tsx",
          "type": "registry:component",
          "target": "@components/auth/auth.tsx"
        }
      ]
    },
    {
      "name": "user-avatar",
      "type": "registry:component",
      "title": "User Avatar",
      "description": "Renders the current user's avatar using session data. Shows a skeleton while loading and falls back to initials when no image is available.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": ["avatar", "skeleton"],
      "files": [
        {
          "path": "src/components/auth/user/user-avatar.tsx",
          "type": "registry:component",
          "target": "@components/auth/user/user-avatar.tsx"
        }
      ]
    },
    {
      "name": "user-view",
      "type": "registry:component",
      "title": "User View",
      "description": "Renders a user view that shows the user's avatar alongside their name and email.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": [
        "skeleton",
        "https://better-auth-ui.com/r/radix-nova/user-avatar.json"
      ],
      "files": [
        {
          "path": "src/components/auth/user/user-view.tsx",
          "type": "registry:component",
          "target": "@components/auth/user/user-view.tsx"
        }
      ]
    },
    {
      "name": "user-button",
      "type": "registry:component",
      "title": "User Button",
      "description": "Renders a user button with dropdown menu showing user info, settings link, plugin-contributed menu items (e.g. theme toggle, account switcher), and sign-in/sign-out actions.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "dropdown-menu",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/user-view.json"
      ],
      "files": [
        {
          "path": "src/components/auth/user/user-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/user/user-button.tsx"
        }
      ]
    },
    {
      "name": "user-profile",
      "type": "registry:component",
      "title": "User Profile",
      "description": "A form component for editing user profile information including name and avatar.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "@tanstack/react-pacer",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "dropdown-menu",
        "field",
        "input",
        "input-group",
        "skeleton",
        "sonner",
        "spinner",
        "https://better-auth-ui.com/r/radix-nova/additional-field.json",
        "https://better-auth-ui.com/r/radix-nova/user-avatar.json"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/account/user-profile.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/account/user-profile.tsx"
        },
        {
          "path": "src/components/auth/settings/account/change-avatar.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/account/change-avatar.tsx"
        }
      ]
    },
    {
      "name": "change-email",
      "type": "registry:component",
      "title": "Change Email",
      "description": "A form component for changing the user's email address with verification.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth"
      ],
      "registryDependencies": [
        "button",
        "card",
        "field",
        "input",
        "skeleton",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/account/change-email.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/account/change-email.tsx"
        }
      ]
    },
    {
      "name": "account-settings",
      "type": "registry:component",
      "title": "Account Settings",
      "description": "A container component that displays account settings including user profile, change email, and plugin-contributed account cards (e.g. appearance from the theme plugin, multi-session accounts).",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest"
      ],
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/user-profile.json",
        "https://better-auth-ui.com/r/radix-nova/change-email.json"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/account/account-settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/account/account-settings.tsx"
        }
      ]
    },
    {
      "name": "change-password",
      "type": "registry:component",
      "title": "Change Password",
      "description": "A form component for users to change their password with current password verification.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "field",
        "input",
        "input-group",
        "skeleton",
        "sonner",
        "spinner",
        "tooltip"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/security/change-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/change-password.tsx"
        },
        {
          "path": "src/components/auth/open-email-button.tsx",
          "type": "registry:component",
          "target": "@components/auth/open-email-button.tsx"
        }
      ]
    },
    {
      "name": "linked-accounts",
      "type": "registry:component",
      "title": "Linked Accounts",
      "description": "Display and manage linked social accounts. Shows all linked social accounts with the ability to unlink them, followed by available providers that can be linked.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "item",
        "skeleton",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/security/linked-accounts.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/linked-accounts.tsx"
        },
        {
          "path": "src/components/auth/settings/security/linked-account.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/linked-account.tsx"
        }
      ]
    },
    {
      "name": "active-sessions",
      "type": "registry:component",
      "title": "Active Sessions",
      "description": "Display and manage all active sessions for the current user with revoke controls. Shows each session's browser, OS, and creation time.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "better-auth",
        "bowser",
        "lucide-react"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "card",
        "item",
        "skeleton",
        "sonner",
        "spinner"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/security/active-sessions.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/active-sessions.tsx"
        },
        {
          "path": "src/components/auth/settings/security/active-session.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/active-session.tsx"
        }
      ]
    },
    {
      "name": "security-settings",
      "type": "registry:component",
      "title": "Security Settings",
      "description": "A container component that displays security settings including password management, linked accounts, plugin-contributed security cards (e.g. passkeys), active sessions, and danger zone.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest"
      ],
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/change-password.json",
        "https://better-auth-ui.com/r/radix-nova/linked-accounts.json",
        "https://better-auth-ui.com/r/radix-nova/active-sessions.json"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/security/security-settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/security/security-settings.tsx"
        }
      ]
    },
    {
      "name": "settings",
      "type": "registry:component",
      "title": "Settings",
      "description": "A unified settings component that renders the appropriate settings view based on path or view prop with tab navigation.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest"
      ],
      "registryDependencies": [
        "tabs",
        "https://better-auth-ui.com/r/radix-nova/account-settings.json",
        "https://better-auth-ui.com/r/radix-nova/security-settings.json"
      ],
      "files": [
        {
          "path": "src/components/auth/settings/settings.tsx",
          "type": "registry:component",
          "target": "@components/auth/settings/settings.tsx"
        }
      ]
    },
    {
      "name": "email-verification-email",
      "type": "registry:component",
      "title": "Email Verification Email",
      "description": "Email template component that sends email verification links to users.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/email-verification.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-verification.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "magic-link-email",
      "type": "registry:component",
      "title": "Magic Link Email",
      "description": "Email template component that sends magic link authentication emails for passwordless sign-in.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/magic-link.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/magic-link.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "reset-password-email",
      "type": "registry:component",
      "title": "Reset Password Email",
      "description": "Email template component that sends password reset links to users.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/reset-password.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/reset-password.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "change-email-confirmation-email",
      "type": "registry:component",
      "title": "Change Email Confirmation Email",
      "description": "Email template component for approving an email address change from the current address.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/change-email-confirmation.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/change-email-confirmation.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "delete-account-verification-email",
      "type": "registry:component",
      "title": "Delete Account Verification Email",
      "description": "Email template component for verifying a permanent account deletion request.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/delete-account-verification.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/delete-account-verification.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "password-changed-email",
      "type": "registry:component",
      "title": "Password Changed Email",
      "description": "Email template component that notifies users when their password has been changed.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/password-changed.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/password-changed.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "email-changed-email",
      "type": "registry:component",
      "title": "Email Changed Email",
      "description": "Email template component that notifies users when their email address has been changed.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/email-changed.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-changed.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "otp-email",
      "type": "registry:component",
      "title": "OTP Email",
      "description": "Email template component that sends one-time password (OTP) verification codes to users.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/otp-email.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/otp-email.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "new-device-email",
      "type": "registry:component",
      "title": "New Device Email",
      "description": "Email template component that notifies users when a new device signs in to their account.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/new-device.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/new-device.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "organization-invitation-email",
      "type": "registry:component",
      "title": "Organization Invitation Email",
      "description": "Email template component that invites a user to join an organization.",
      "dependencies": [
        "@better-auth-ui/react@latest",
        "@better-auth-ui/core@latest",
        "react-email"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "../../packages/react/src/components/auth/email/organization-invitation.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/organization-invitation.tsx"
        },
        {
          "path": "../../packages/react/src/components/auth/email/email-styles.tsx",
          "type": "registry:component",
          "target": "@components/auth/email/email-styles.tsx"
        }
      ]
    },
    {
      "name": "all",
      "type": "registry:item",
      "title": "All",
      "description": "Installs every Better Auth UI component, plugin, and email template in one shot.",
      "registryDependencies": [
        "https://better-auth-ui.com/r/radix-nova/auth-provider.json",
        "https://better-auth-ui.com/r/radix-nova/additional-field.json",
        "https://better-auth-ui.com/r/radix-nova/sign-in.json",
        "https://better-auth-ui.com/r/radix-nova/anonymous.json",
        "https://better-auth-ui.com/r/radix-nova/last-login-method.json",
        "https://better-auth-ui.com/r/radix-nova/one-tap.json",
        "https://better-auth-ui.com/r/radix-nova/sign-up.json",
        "https://better-auth-ui.com/r/radix-nova/email-otp.json",
        "https://better-auth-ui.com/r/radix-nova/magic-link.json",
        "https://better-auth-ui.com/r/radix-nova/oauth-provider.json",
        "https://better-auth-ui.com/r/radix-nova/device-authorization.json",
        "https://better-auth-ui.com/r/radix-nova/username.json",
        "https://better-auth-ui.com/r/radix-nova/passkey.json",
        "https://better-auth-ui.com/r/radix-nova/two-factor.json",
        "https://better-auth-ui.com/r/radix-nova/api-key.json",
        "https://better-auth-ui.com/r/radix-nova/admin.json",
        "https://better-auth-ui.com/r/radix-nova/multi-session.json",
        "https://better-auth-ui.com/r/radix-nova/organization.json",
        "https://better-auth-ui.com/r/radix-nova/theme.json",
        "https://better-auth-ui.com/r/radix-nova/delete-user.json",
        "https://better-auth-ui.com/r/radix-nova/forgot-password.json",
        "https://better-auth-ui.com/r/radix-nova/reset-password.json",
        "https://better-auth-ui.com/r/radix-nova/verify-email.json",
        "https://better-auth-ui.com/r/radix-nova/sign-out.json",
        "https://better-auth-ui.com/r/radix-nova/auth.json",
        "https://better-auth-ui.com/r/radix-nova/user-avatar.json",
        "https://better-auth-ui.com/r/radix-nova/user-view.json",
        "https://better-auth-ui.com/r/radix-nova/user-button.json",
        "https://better-auth-ui.com/r/radix-nova/user-profile.json",
        "https://better-auth-ui.com/r/radix-nova/change-email.json",
        "https://better-auth-ui.com/r/radix-nova/account-settings.json",
        "https://better-auth-ui.com/r/radix-nova/change-password.json",
        "https://better-auth-ui.com/r/radix-nova/linked-accounts.json",
        "https://better-auth-ui.com/r/radix-nova/active-sessions.json",
        "https://better-auth-ui.com/r/radix-nova/security-settings.json",
        "https://better-auth-ui.com/r/radix-nova/settings.json",
        "https://better-auth-ui.com/r/radix-nova/email-verification-email.json",
        "https://better-auth-ui.com/r/radix-nova/magic-link-email.json",
        "https://better-auth-ui.com/r/radix-nova/reset-password-email.json",
        "https://better-auth-ui.com/r/radix-nova/change-email-confirmation-email.json",
        "https://better-auth-ui.com/r/radix-nova/delete-account-verification-email.json",
        "https://better-auth-ui.com/r/radix-nova/password-changed-email.json",
        "https://better-auth-ui.com/r/radix-nova/email-changed-email.json",
        "https://better-auth-ui.com/r/radix-nova/otp-email.json",
        "https://better-auth-ui.com/r/radix-nova/new-device-email.json",
        "https://better-auth-ui.com/r/radix-nova/organization-invitation-email.json"
      ],
      "files": []
    }
  ]
}
