Ticket Tier Select
manifest-ui/ticket-tier-selectFreeBlock
Ticket tier selection with quantity controls and order summary. Shows price breakdown with fees.
Install it
npx shadcn@latest add https://ui.manifest.build/r/ticket-tier-select.jsonSource
1'use client'23import { Button } from '@/components/ui/button'4import { cn } from '@/lib/utils'5import { Minus, Plus, Info } from 'lucide-react'6import { useState } from 'react'7import { demoTicketTiers } from './demo/events'89/**10 * Formats a currency amount.11 * @param {number} amount - Amount to format12 * @param {string} currency - Currency code13 * @returns {string} Formatted currency string14 */15function formatCurrency(amount: number, currency: string = 'USD'): string {16 return new Intl.NumberFormat('en-US', {17 style: 'currency',18 currency,19 minimumFractionDigits: 220 }).format(amount)21}2223/**24 * Represents a ticket tier option.25 * @interface TicketTier26 * @property {string} [name] - Tier name (e.g., "General Admission", "VIP")27 * @property {number} [price] - Base price28 * @property {number} [fee] - Service fee29 * @property {number} [available] - Number available30 * @property {string} [salesEndDate] - When sales end31 * @property {string} [description] - Tier description32 * @property {number} [maxPerOrder] - Maximum tickets per order33 */34export interface TicketTier {35 name?: string36 price?: number37 fee?: number38 available?: number39 salesEndDate?: string40 description?: string41 maxPerOrder?: number42}4344/**45 * Represents a selected ticket with quantity.46 * @interface TicketSelection47 * @property {string} tierName - Tier name for display48 * @property {number} quantity - Number of tickets49 * @property {number} price - Base price per ticket50 * @property {number} fee - Fee per ticket51 */52export interface TicketSelection {53 tierName?: string54 quantity: number55 price?: number56 fee?: number57}5859export interface TicketTierEvent {60 title?: string61 date?: string62 image?: string63 currency?: string64}6566/**67 * ═══════════════════════════════════════════════════════════════════════════68 * TicketTierSelectProps69 * ═══════════════════════════════════════════════════════════════════════════70 *71 * Props for the TicketTierSelect component. Allows selection of multiple72 * ticket tiers with quantity pickers and displays an order summary.73 */74export interface TicketTierSelectProps {75 data?: {76 /** Event information including title, date, and currency. */77// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from Manifest UI
All 32 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Amount Inputamount-input | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Chat Conversationchat-conversation | Manifest UI | Blocks | Free | 1 dep · 3 files | |
| Contact Formcontact-form | Manifest UI | Blocks | Free | 1 dep · 3 files | |
| Date & Time Pickerdate-time-picker | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Cardevent-card | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Confirmationevent-confirmation | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Detailevent-detail | Manifest UI | Blocks | Free | 3 deps · 2 files | |
| Event Listevent-list | Manifest UI | Blocks | Free | 3 deps · 2 files |
