Activity Experience Booking
A wide hero photo with an overlaid rating, duration, and difficulty badge row, a static highlights list, and a booking panel with a real date input, a real +/- traveler counter, and a real single-select language picker, all feeding a live running total.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button, badge, media-slot dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/activity-experience-booking.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/booking/booking14.tsx instead.
Usage
The file also exports booking14Demo, 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 { Booking14, booking14Demo } from "@/components/blocks/booking/booking14"; export default function Page() { return <Booking14 {...booking14Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | "Sunrise Volcano Hike & Breakfast" | Activity title. |
| image | { src: string; alt: string } | none | Hero photo, falls back to a placeholder if omitted. |
| rating | number | 4.9 | Average rating out of 5. |
| reviewCount | number | 812 | Number of reviews. |
| durationLabel | string | "5 hours" | Activity duration label. |
| difficulty | string | "Moderate" | Difficulty badge text. |
| pricePerPerson | number | 89 | Price per traveler in USD. |
| highlights | string[] | [] | Bullet list of activity highlights. |
| className | string | none | Extra classes for the outer section element. |
Behavior notes
- The traveler counter's +/- buttons are real client state and immediately recompute the displayed total price (price per person times travelers).
- The language pill picker (English/Spanish/French) is real single-select client state.
- The date input is a real native date picker holding client state.
- The Reserve button is decorative only, no reservation is actually made.
More Booking Blocks
View all →date-time-picker
Date & Time Picker
Split-panel scheduler: a real monthly calendar on the left, morning/afternoon time slots on the right, and a live booking summary footer.
reservation-summary
Reservation Summary
A static booking confirmation card with service, date/time, provider avatar, price breakdown, promo code field, and cancellation policy.
appointment-list
Appointment List
Upcoming and past appointments grouped by date, with provider avatar, status badge, and reschedule/cancel actions.
service-selector
Service Selector
Category-tabbed grid of bookable services with icon, description, duration, and price.
provider-picker
Provider Picker
A selectable grid of staff/provider cards with rating, reviews, availability, and an Any Provider fallback.
restaurant-reservation
Restaurant Reservation
Table reservation form with a guest stepper, date/time inputs, seating pills, and a live summary panel.