Account Chooser

Full-height account picker that lists saved accounts with avatars, names, and emails, plus a use-another-account row. Perfect for multi-account apps, SSO hubs, and returning-user sign-in.

FREE

Auth7: Account Chooser

Full-height account picker: a heading and description above a bordered list of saved accounts (avatar, name, email, chevron), with a "use another account" row appended at the bottom and a legal note beneath the card. There are no form fields at all, every row is a link.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/auth7"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/auth7"

This installs the block to components/beste/block/auth7.tsx and the avatar and field shadcn/ui primitives it's built on.

Quick start

The installed file exports auth7Demo alongside the block: the exact props behind the preview above. Spread it to get a working account chooser in one line.

tsx
import { Auth7, auth7Demo } from "@/components/beste/block/auth7";

export default function ChooseAccountPage() {
  return <Auth7 {...auth7Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Auth7 } from "@/components/beste/block/auth7";

export default function ChooseAccountPage() {
  return (
    <Auth7
      heading="Choose an account"
      description="to continue to Acme"
      accounts={[
        { name: "Jane Cooper", email: "jane@example.com", href: "/session/jane" },
        { name: "Marcus Lee", email: "marcus@workmail.com", href: "/session/marcus" },
      ]}
      useAnotherAccount={{ label: "Use another account", href: "/sign-in" }}
    />
  );
}

Props

PropTypeDefaultDescription
headingstringScreen title
descriptionstringSubtext below the heading (e.g. "to continue to Acme")
accountsAccount[][]Saved account rows, in list order
useAnotherAccount{ label: string; href: string }Extra row appended after the accounts, hidden entirely when not set
labels{ legal?: string }{}Legal note below the card
classNamestringExtra classes for the outer <section>
ts
type Account = {
  name: string;
  email: string;
  avatar?: { src: string; alt: string };
  href?: string;
};

Behavior notes

Wiring the form up

This block ships the form markup only; state, validation, and submit are yours to add. Our guide wires the shadcn Field primitives to React Hook Form, TanStack Form, and Formisch on one field system.

More Auth blocks

View all Auth
PRO

auth11

Account Type Selection

Full-height onboarding step where the user picks an account type from selectable radio cards with icons and descriptions, then continues. Perfect for tailoring sign-up flows by persona or plan.

PRO

auth25

Claim Your Username

Full-height username picker with a prefixed input group, a live availability indicator, suggestion chips when a handle is taken, and a submit button that unlocks only when the name is free. Perfect for onboarding handle selection.

PRO

auth36

Workspace Switcher

Full-height workspace picker listing organizations with logo initials, member details, and a create-workspace row, plus a signed-in-as footer. Perfect for multi-tenant apps after sign-in.

PRO

auth14

Enterprise SSO Sign In

Full-height single sign-on screen with a work-email field, a continue-with-SSO button, and Google and Microsoft providers below a divider. Perfect for B2B and enterprise apps that authenticate via identity providers.

PRO

auth24

Complete Your Profile

Full-height profile setup step with an avatar uploader, a display name field, and a bio textarea, plus a skip option. Perfect for the post-sign-up onboarding step where users personalize their account.

PRO

auth16

Team Invitation Accept

Full-height invitation acceptance screen showing the inviter's avatar and team name, a pre-filled disabled email, and name and password fields to set up the account. Perfect for team onboarding and invite-link flows.