Staaarter

Provider Picker

A grid of staff or provider selection cards, each showing an avatar, name, specialty, star rating, review count, an availability badge, and years of experience. An extra 'Any Provider' card lets a visitor skip picking a specific person. Clicking a card selects it with a visible ring highlight.

By Staaarter Team
Booking
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its avatar, avatar-initials, badge dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/provider-picker.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/booking/booking5.tsx instead.

Usage

The file also exports booking5Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Booking5, booking5Demo } from "@/components/blocks/booking/booking5";

export default function Page() {
  return <Booking5 {...booking5Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Choose your provider"Section heading.
descriptionstring"Pick who you'd like to see, or let us match you with the next available provider."Supporting copy under the heading.
providersBooking5Provider[]noneList of selectable providers.
classNamestringnoneExtra classes for the outer section element.

Types

interface Booking5Provider {
  id: string;
  name: string;
  specialty: string;
  avatarUrl?: string;
  rating: number;
  reviewCount: number;
  availability: string;
  yearsExperience: number;
}

Behavior notes

  • Selecting a provider card (including the 'Any Provider' option) is real client-side single-select state; the selected card gets a primary ring and border.
  • Star ratings are rendered by rounding the numeric rating to the nearest whole star, filling that many Star icons.
  • The availability badge text is static demo data, not a live schedule lookup.