Sentaste.io Widget Interactive Seating Chart for Events

Production-ready embeddable widget with real-time seat holds, responsive design, accessibility, theming, and checkout integration.

โšก Real-time WebSocket โ™ฟ WCAG Accessible ๐Ÿ“ฑ Mobile-first ๐ŸŽจ Themeable ๐ŸŒ i18n (EN/ES/PT) ๐Ÿ›’ Cart + Checkout

๐Ÿ“Ÿ Event Log

Ready.

๐ŸŽฏ Target

Switch between event and season without leaving the demo

๐ŸŽญ Enabled Categories

Use the multi-select or chips, then apply to keep only those categories enabled
Loading categories...

๐Ÿงช Debug State

Typeevent
Target-
Members(none)
Public key-
API base-
Hold min15
Max seats(none)
Hold token(none)
Expires(none)
Selected0
Objects(none)
Watch(none)
Status(unknown)
Connectionconnecting
Realtime(none)
Expired objs(none)

๐ŸŽฎ Parent Control

Programmatic seat control from parent page

๐Ÿ›ฐ๏ธ Remote Actions

Uses current selection if object keys is empty

โœจ Widget Features

๐Ÿ“ฑ

Responsive Design

Adapts from 320px to 4K. Pinch-to-zoom, touch pan, bottom sheets on mobile, double-tap zoom.

โ™ฟ

Full Accessibility

ARIA roles & labels, keyboard navigation (arrows, Tab, Enter, Escape), live announcements, focus indicators, high contrast mode.

๐ŸŽจ

Theming

Light, Dark, and Auto themes. Custom colors via CSS variables or config. High contrast option for low vision users.

โšก

Real-time Updates

WebSocket for instant seat status changes. Automatic fallback to polling. Connection status indicator and offline detection.

๐Ÿ”’

Hold & Reserve

Server-side seat holds with countdown timer. Automatic release on expiration. Hold token for checkout integration.

๐ŸŽฏ

Best Available

One-click best seat selection with pulse animation. Filter by category. Smart suggestions for adjacent seats.

๐Ÿ—บ๏ธ

Minimap Navigation

Minimap for large venues. Click to navigate. Shows viewport position and all seat categories.

๐Ÿ›’

Cart & Checkout

Built-in cart panel with seat details, pricing, and checkout button. Mobile cart sheet with swipe gestures.

๐ŸŒ

Internationalization

Full i18n support for English, Spanish, and Portuguese. All labels, error messages, and UI strings translated.

๐ŸŸ๏ธ

Section Zoom

Click sections to zoom in with smooth animation. Breadcrumb navigation. General Admission areas with capacity tracking.

โณ

Loading & Error States

Skeleton shimmer while loading. Friendly error messages with retry. Offline and reconnection banners.

๐Ÿš€

Viewport Culling

Only renders seats visible in the viewport. Handles 10K+ seat venues smoothly without performance degradation.

๐Ÿ’ป Quick Integration

// 1. Include the widget script <script src="https://widget.sentaste.io/dist/sentaste-widget.umd.cjs"></script> // 2. Create the widget const widget = Sentaste.render('#my-chart', { publicKey: 'pub_ws_your_key_here', event: 'your-event-uuid', // or: season: 'your-season-uuid', session: 'manual' theme: 'auto', // 'light' | 'dark' | 'auto' locale: 'en', // 'en' | 'es' | 'pt' currency: 'USD', showCart: true, holdExpiryMinutes: 15, maxSelectedSeats: 10, onSelectionChange: (seats) => console.log(seats), onCheckout: (seats) => /* redirect to payment */, onHoldTokenCreated: (token, expiresAt) => /* save for checkout */, }); // 3. API methods widget.getSelectedSeats(); // โ†’ SeatInfo[] widget.deselectSeat('A-1'); // deselect individual seat widget.clearSelection(); // deselect all + release holds widget.setTheme('dark'); // switch theme at runtime widget.destroy(); // cleanup and unmount