Staaarter

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.

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 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.json

Prefer 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

PropTypeDefaultDescription
titlestring"Sunrise Volcano Hike & Breakfast"Activity title.
image{ src: string; alt: string }noneHero photo, falls back to a placeholder if omitted.
ratingnumber4.9Average rating out of 5.
reviewCountnumber812Number of reviews.
durationLabelstring"5 hours"Activity duration label.
difficultystring"Moderate"Difficulty badge text.
pricePerPersonnumber89Price per traveler in USD.
highlightsstring[][]Bullet list of activity highlights.
classNamestringnoneExtra 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.