# Salon Front Desk block

> Salon Front-Desk Booking Dashboard with Appointment Queue and Chair Capacity

Front-desk surface for daily salon scheduling: KPI cards, a chair-capacity donut, and a searchable appointment queue with status badges and no-show tracking. ReUI Frame, Badge, DataGrid; shadcn Avatar. Booking dashboard, appointment scheduler.

- Type: Pro block
- Category: [Bookings](https://web.dev.reui.io/blocks/solutions/bookings.md)
- Page: https://web.dev.reui.io/blocks/solutions/bookings/solution-bookings-1
- MCP: `get_block("solution-bookings-1")`
- Built with: Avatar, Badge, Breadcrumb, Button, Calendar, Chart, Checkbox, Data Grid, Dropdown Menu, Frame, Input Group, Item, Label, Popover, Progress, Select, Separator, Tabs, Timeline, Tooltip
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

An appointment data grid with search, status filters and row actions under 4 KPI tiles, an activity feed and a chair capacity meter

## Agent notes

- Replace the Lumen Studio sample data in data.tsx: `APPOINTMENTS`, `BOOKING_METRICS`, `BOOKING_ACTIVITY` and `CAPACITY_PERIODS`
- The row menu in `columns` (View, Check In, Reschedule, Cancel), `handleCreate`, `handleExport` and `handleReport` only show a `toast`
- `BookingDateRangePicker` and the Desk Performance `Select` filter nothing; `APPOINTMENTS` and `BOOKING_METRICS` ignore the range

## When not to use

- Workforce staffing as supply against a forecast over a date range, with no appointments: use [Workforce Coverage](https://web.dev.reui.io/blocks/application/dashboard/dashboard-6.md) (`get_block("dashboard-6")`)
- A fulfillment exception queue of orders with selectable rows, not client appointments: use [Fulfillment Exceptions](https://web.dev.reui.io/blocks/application/dashboard/dashboard-1.md) (`get_block("dashboard-1")`)

## Third-party libraries

- TanStack Table v9: [API reference](https://tanstack.com/table/v9/docs/framework/react/reference/index), [docs](https://tanstack.com/table/v9/docs/framework/react/quick-start)
- date-fns v4: [docs](https://date-fns.org/v4.1.0/docs/Getting-Started)
- React DayPicker v9: [API reference](https://daypicker.dev/v9/api), [docs](https://daypicker.dev/v9/start)
- Sonner v2: [API reference](https://sonner.emilkowal.ski/toast), [docs](https://sonner.emilkowal.ski/getting-started)
- Recharts v3: [API reference](https://recharts.github.io/en-US/api/), [docs](https://recharts.github.io/en-US/guide/getting-started/), through shadcn Chart

## Install

```bash
npx shadcn@latest add @reui/solution-bookings-1
```

## About Bookings blocks

### When to use

- A front desk overview for an appointment business: booking KPIs, chair capacity and the day's queue
- An appointment calendar by day or week, filtered by staff and service, with a double booking alert
- One appointment's detail over the day's list: client, deposit balance, internal note and booking history

### When not to use

- An activity feed or change history on its own, with no appointments or clients: use the [Timeline blocks](https://web.dev.reui.io/blocks/application/timeline.md)
- A team overview of KPI tiles and a work queue for a business with no appointments: use the [Dashboard blocks](https://web.dev.reui.io/blocks/application/dashboard.md)
- A client facing card where someone picks a day and a time slot to book one session: use the [Schedule blocks](https://web.dev.reui.io/blocks/application/schedule.md)

### Agent notes

- Each block's data.tsx declares its own `AppointmentStatus` union, and the 3 differ in values and casing; map them to one set before combining
- Write actions save nothing: new appointments, check-ins, status changes and notes only call sonner `toast`, at most after a local state change
- Each root sets a max width, `max-w-7xl`, `max-w-6xl` or `max-w-md`, and page.tsx or the root adds padding; drop both inside an app shell

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
