@nex125/seatmap-viewer 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/SeatmapViewer.tsx","../src/styleContract.ts","../src/theme/seatmapViewerTheme.ts"],"names":["AVAILABLE_STATUS_ID","jsxs","jsx","useMemo","useSelection","useState","useRef","useEffect","useCallback","SeatmapCanvas","TooltipOverlay","SeatmapProvider"],"mappings":"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","file":"index.cjs","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties, type ReactNode } from \"react\";\nimport { AVAILABLE_STATUS_ID } from \"@nex125/seatmap-core\";\nimport type { PricingCategory, SeatStatus, Venue } from \"@nex125/seatmap-core\";\nimport { SeatmapCanvas, SeatmapProvider, TooltipOverlay, useSelection } from \"@nex125/seatmap-react\";\nimport type { TooltipData } from \"@nex125/seatmap-react\";\nimport type { SeatmapViewerClassNames, SeatmapViewerStyles } from \"./styleContract\";\n\nexport interface SeatmapCartSeat {\n seatId: string;\n seatLabel: string;\n rowLabel: string | null;\n sectionId: string | null;\n sectionLabel: string | null;\n categoryId: string;\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n}\n\ninterface SeatDetails extends SeatmapCartSeat {\n status: SeatStatus;\n x: number;\n y: number;\n}\n\nexport interface SeatmapCartPayload {\n venueId: string;\n venueName: string;\n seats: SeatmapCartSeat[];\n totalSelectedSeats: number;\n totalCost: number;\n}\n\nexport interface SeatmapCartEvent {\n type: \"cart-proceed-clicked\";\n payload: SeatmapCartPayload;\n}\n\nexport interface SeatmapViewerProps {\n venue: Venue;\n onSeatClick?: (seatId: string, sectionId: string) => void;\n onSeatHover?: (seatId: string | null, sectionId: string | null) => void;\n onSelectionChange?: (seatIds: string[]) => void;\n onStatusUpdate?: (seatId: string, status: SeatStatus) => void;\n renderTooltip?: (data: TooltipData) => ReactNode;\n showLabels?: boolean;\n className?: string;\n onCartEvent?: (event: SeatmapCartEvent) => void;\n locale?: string;\n currency?: string;\n styles?: SeatmapViewerStyles;\n classNames?: SeatmapViewerClassNames;\n messages?: Partial<SeatmapViewerMessages>;\n}\n\nexport interface SeatmapViewerMessages {\n uncategorizedCategoryName: string;\n sectionFallbackLabel: string;\n tableLabel: (tableLabel: string) => string;\n tooltipSeatLabel: (rowLabel: string, seatLabel: string) => string;\n tooltipStatusAvailable: string;\n tooltipPriceLabel: (price: string) => string;\n tooltipPriceUnavailable: string;\n legendAriaLabel: string;\n legendStatusesTitle: string;\n legendPricesTitle: string;\n cartChipLabel: (selectedCount: number) => string;\n cartAriaLabel: string;\n cartHeaderTitle: string;\n cartCloseLabel: string;\n cartEmptyState: string;\n cartGroupMeta: (count: number, unitPrice: string) => string;\n cartGroupFee: (basePrice: string, serviceFee: string, serviceFeePercent: string | null) => string;\n cartRemoveOneAriaLabel: (categoryName: string) => string;\n cartAddOneAriaLabel: (categoryName: string) => string;\n cartRemoveSeatTitle: string;\n cartRemoveSeatAriaLabel: (seatLabel: string) => string;\n cartServiceFeeSummary: (serviceFeeTotal: string) => string;\n cartSummary: (count: number, totalCost: string) => string;\n cartProceedButton: string;\n}\n\nexport const defaultSeatmapViewerMessages: SeatmapViewerMessages = {\n uncategorizedCategoryName: \"Uncategorized\",\n sectionFallbackLabel: \"Section\",\n tableLabel: (tableLabel) => `Table ${tableLabel}`,\n tooltipSeatLabel: (rowLabel, seatLabel) => `Row ${rowLabel}, Seat ${seatLabel}`,\n tooltipStatusAvailable: \"Available\",\n tooltipPriceLabel: (price) => `Price: ${price}`,\n tooltipPriceUnavailable: \"Price unavailable\",\n legendAriaLabel: \"Seatmap legend\",\n legendStatusesTitle: \"Seat statuses\",\n legendPricesTitle: \"Prices\",\n cartChipLabel: (selectedCount) => `Cart (${selectedCount})`,\n cartAriaLabel: \"Selected seats cart\",\n cartHeaderTitle: \"Selected seats cart\",\n cartCloseLabel: \"Close cart\",\n cartEmptyState: \"No seats selected yet.\",\n cartGroupMeta: (count, unitPrice) => `${count} tickets - ${unitPrice} each`,\n cartGroupFee: (basePrice, serviceFee, serviceFeePercent) =>\n serviceFeePercent\n ? `Base ${basePrice} + service fee ${serviceFee} (${serviceFeePercent})`\n : `Base ${basePrice} + service fee ${serviceFee}`,\n cartRemoveOneAriaLabel: (categoryName) => `Remove one seat from ${categoryName}`,\n cartAddOneAriaLabel: (categoryName) => `Add one seat to ${categoryName}`,\n cartRemoveSeatTitle: \"Remove seat\",\n cartRemoveSeatAriaLabel: (seatLabel) => `Remove seat ${seatLabel}`,\n cartServiceFeeSummary: (serviceFeeTotal) => `Service fee included: ${serviceFeeTotal}`,\n cartSummary: (count, totalCost) => `${count} seats - Total ${totalCost}`,\n cartProceedButton: \"Proceed\",\n};\n\nfunction getCategoryPriceBreakdown(category: PricingCategory | undefined): {\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n} {\n if (!category) {\n return { unitPrice: 0, baseUnitPrice: 0, serviceFee: 0 };\n }\n\n const baseUnitPrice = Number.isFinite(category.basePrice) ? (category.basePrice as number) : 0;\n const serviceFee = Number.isFinite(category.serviceFee) ? (category.serviceFee as number) : 0;\n\n if (category.isPriceOverridden && Number.isFinite(category.overriddenPrice)) {\n return {\n unitPrice: category.overriddenPrice ?? 0,\n baseUnitPrice,\n serviceFee,\n };\n }\n\n if (Number.isFinite(category.backendPrice)) {\n return {\n unitPrice: category.backendPrice as number,\n baseUnitPrice,\n serviceFee,\n };\n }\n\n return {\n unitPrice: baseUnitPrice + serviceFee,\n baseUnitPrice,\n serviceFee,\n };\n}\n\nfunction formatPercent(value: number, locale: string): string {\n return new Intl.NumberFormat(locale, {\n style: \"percent\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\nfunction formatMoney(value: number, locale: string, currency: string): string {\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n }).format(value);\n}\n\nfunction DefaultSeatmapViewerTooltip({\n data,\n locale,\n currency,\n messages,\n}: {\n data: TooltipData;\n locale: string;\n currency: string;\n messages: SeatmapViewerMessages;\n}) {\n const statusLabel =\n data.statusName ??\n (data.seat.status === AVAILABLE_STATUS_ID ? messages.tooltipStatusAvailable : data.seat.status);\n const priceLabel =\n typeof data.price === \"number\"\n ? messages.tooltipPriceLabel(formatMoney(data.price, locale, currency))\n : messages.tooltipPriceUnavailable;\n\n return (\n <div\n style={{\n background: \"var(--seatmap-tooltip-surface, color-mix(in srgb, var(--seatmap-surface-container-low, #181818) 94%, transparent))\",\n border: \"1px solid var(--seatmap-tooltip-border, var(--seatmap-outline, #353331))\",\n borderRadius: 10,\n padding: \"8px 14px\",\n color: \"var(--seatmap-tooltip-text, var(--seatmap-on-surface, #e5e2e1))\",\n fontSize: 13,\n fontFamily: \"system-ui\",\n pointerEvents: \"none\",\n whiteSpace: \"nowrap\",\n }}\n >\n <div style={{ fontWeight: 600, marginBottom: 2 }}>{data.section.label}</div>\n <div>{messages.tooltipSeatLabel(data.row.label, data.seat.label)}</div>\n <div\n style={{\n color: \"var(--seatmap-tooltip-muted-text, var(--seatmap-on-surface-variant, #9a9694))\",\n fontSize: 12,\n marginTop: 2,\n }}\n >\n {statusLabel}\n </div>\n <div\n style={{\n color: \"var(--seatmap-tooltip-muted-text, var(--seatmap-on-surface-variant, #9a9694))\",\n fontSize: 12,\n marginTop: 2,\n }}\n >\n {priceLabel}\n </div>\n </div>\n );\n}\n\nfunction TrashIcon() {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M9 3h6l1 2h4v2H4V5h4l1-2Zm1 7h2v8h-2v-8Zm4 0h2v8h-2v-8ZM7 10h2v8H7v-8Zm-1 12h12a2 2 0 0 0 2-2V8H4v12a2 2 0 0 0 2 2Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nfunction mergeStyles(base: CSSProperties, override?: CSSProperties): CSSProperties {\n if (!override) return base;\n return { ...base, ...override };\n}\n\nfunction mergeClassNames(...classNames: Array<string | undefined>): string | undefined {\n const merged = classNames.filter(Boolean).join(\" \").trim();\n return merged.length > 0 ? merged : undefined;\n}\n\nexport type SeatmapViewerContentProps = Omit<SeatmapViewerProps, \"className\"> & { showLabels: boolean };\n\nexport function SeatmapViewerContent({\n venue,\n onSeatClick,\n onSeatHover,\n onSelectionChange,\n renderTooltip,\n showLabels,\n onCartEvent,\n locale = \"en-US\",\n currency = \"BYN\",\n styles = {},\n classNames = {},\n messages: messagesOverride = {},\n}: SeatmapViewerContentProps) {\n const messages = useMemo(\n () => ({ ...defaultSeatmapViewerMessages, ...messagesOverride }),\n [messagesOverride],\n );\n const { selectedSeatIds, setSelection } = useSelection();\n const [isCartOpen, setIsCartOpen] = useState(false);\n const [lastUserAnchorByCategory, setLastUserAnchorByCategory] = useState<Record<string, string>>({});\n const [viewportWidth, setViewportWidth] = useState<number>(() =>\n typeof window === \"undefined\" ? 1280 : window.innerWidth,\n );\n const previousSelectedRef = useRef<string[]>([]);\n const pendingSeatClickRef = useRef<string | null>(null);\n\n const showStatuses = venue.seatStatuses.length > 0;\n const showCategories = venue.categories.length > 0;\n const selectedSeatIdArray = useMemo(() => Array.from(selectedSeatIds), [selectedSeatIds]);\n const seatDetailsById = useMemo(() => {\n const categoryMap = new Map(venue.categories.map((category) => [category.id, category]));\n const next = new Map<string, SeatDetails>();\n\n for (const section of venue.sections) {\n const cos = Math.cos(section.rotation);\n const sin = Math.sin(section.rotation);\n for (const row of section.rows) {\n for (const seat of row.seats) {\n const category = categoryMap.get(seat.categoryId);\n const priceBreakdown = getCategoryPriceBreakdown(category);\n next.set(seat.id, {\n seatId: seat.id,\n seatLabel: seat.label,\n rowLabel: row.label,\n sectionId: section.id,\n sectionLabel: section.label,\n categoryId: seat.categoryId,\n categoryName: category?.name ?? messages.uncategorizedCategoryName,\n unitPrice: priceBreakdown.unitPrice,\n baseUnitPrice: priceBreakdown.baseUnitPrice,\n serviceFee: priceBreakdown.serviceFee,\n status: seat.status,\n x: section.position.x + seat.position.x * cos - seat.position.y * sin,\n y: section.position.y + seat.position.x * sin + seat.position.y * cos,\n });\n }\n }\n }\n\n for (const table of venue.tables) {\n for (const seat of table.seats) {\n const category = categoryMap.get(seat.categoryId);\n const priceBreakdown = getCategoryPriceBreakdown(category);\n next.set(seat.id, {\n seatId: seat.id,\n seatLabel: seat.label,\n rowLabel: null,\n sectionId: table.id,\n sectionLabel: messages.tableLabel(table.label),\n categoryId: seat.categoryId,\n categoryName: category?.name ?? messages.uncategorizedCategoryName,\n unitPrice: priceBreakdown.unitPrice,\n baseUnitPrice: priceBreakdown.baseUnitPrice,\n serviceFee: priceBreakdown.serviceFee,\n status: seat.status,\n x: table.position.x + seat.position.x,\n y: table.position.y + seat.position.y,\n });\n }\n }\n return next;\n }, [venue, messages]);\n\n const selectedSeats = useMemo(() => {\n const ordered: SeatDetails[] = [];\n for (const selectedSeatId of selectedSeatIdArray) {\n const seat = seatDetailsById.get(selectedSeatId);\n if (seat) ordered.push(seat);\n }\n return ordered;\n }, [seatDetailsById, selectedSeatIdArray]);\n\n useEffect(() => {\n onSelectionChange?.(selectedSeatIdArray);\n }, [onSelectionChange, selectedSeatIdArray]);\n\n useEffect(() => {\n const previous = new Set(previousSelectedRef.current);\n const added = selectedSeatIdArray.filter((seatId) => !previous.has(seatId));\n const clickedSeatId = pendingSeatClickRef.current;\n if (clickedSeatId && added.includes(clickedSeatId)) {\n const clickedSeat = seatDetailsById.get(clickedSeatId);\n if (clickedSeat) {\n setLastUserAnchorByCategory((current) => ({\n ...current,\n [clickedSeat.categoryId]: clickedSeatId,\n }));\n }\n }\n previousSelectedRef.current = selectedSeatIdArray;\n pendingSeatClickRef.current = null;\n }, [seatDetailsById, selectedSeatIdArray]);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const onResize = () => setViewportWidth(window.innerWidth);\n window.addEventListener(\"resize\", onResize);\n return () => window.removeEventListener(\"resize\", onResize);\n }, []);\n\n const cartSeats = useMemo<SeatmapCartSeat[]>(\n () =>\n selectedSeats.map((seat) => ({\n seatId: seat.seatId,\n seatLabel: seat.seatLabel,\n rowLabel: seat.rowLabel,\n sectionId: seat.sectionId,\n sectionLabel: seat.sectionLabel,\n categoryId: seat.categoryId,\n categoryName: seat.categoryName,\n unitPrice: seat.unitPrice,\n baseUnitPrice: seat.baseUnitPrice,\n serviceFee: seat.serviceFee,\n })),\n [selectedSeats],\n );\n\n const totalSelectedSeats = useMemo(() => cartSeats.length, [cartSeats]);\n const totalCost = useMemo(() => cartSeats.reduce((sum, seat) => sum + seat.unitPrice, 0), [cartSeats]);\n const totalServiceFee = useMemo(() => cartSeats.reduce((sum, seat) => sum + seat.serviceFee, 0), [cartSeats]);\n const effectiveTooltipRenderer = useCallback(\n (data: TooltipData) => {\n if (renderTooltip) {\n return renderTooltip(data);\n }\n\n return (\n <DefaultSeatmapViewerTooltip\n data={data}\n locale={locale}\n currency={currency}\n messages={messages}\n />\n );\n },\n [currency, locale, messages, renderTooltip],\n );\n\n const groupedSeatsList = useMemo(() => {\n const grouped = new Map<string, {\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n seats: SeatmapCartSeat[];\n }>();\n for (const seat of cartSeats) {\n const existing = grouped.get(seat.categoryId);\n if (existing) {\n existing.seats.push(seat);\n } else {\n grouped.set(seat.categoryId, {\n categoryName: seat.categoryName,\n unitPrice: seat.unitPrice,\n baseUnitPrice: seat.baseUnitPrice,\n serviceFee: seat.serviceFee,\n seats: [seat],\n });\n }\n }\n\n const ordered: Array<{\n categoryId: string;\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n seats: SeatmapCartSeat[];\n availableToAdd: number;\n }> = [];\n const selectedSet = new Set(selectedSeatIdArray);\n\n const availableToAddByCategory = new Map<string, number>();\n for (const seat of seatDetailsById.values()) {\n if (seat.status !== AVAILABLE_STATUS_ID || selectedSet.has(seat.seatId)) continue;\n availableToAddByCategory.set(\n seat.categoryId,\n (availableToAddByCategory.get(seat.categoryId) ?? 0) + 1,\n );\n }\n\n for (const category of venue.categories) {\n const group = grouped.get(category.id);\n if (!group) continue;\n ordered.push({\n categoryId: category.id,\n categoryName: group.categoryName,\n unitPrice: group.unitPrice,\n baseUnitPrice: group.baseUnitPrice,\n serviceFee: group.serviceFee,\n seats: group.seats,\n availableToAdd: availableToAddByCategory.get(category.id) ?? 0,\n });\n }\n\n for (const [categoryId, group] of grouped.entries()) {\n if (venue.categories.some((category) => category.id === categoryId)) continue;\n ordered.push({\n categoryId,\n categoryName: group.categoryName,\n unitPrice: group.unitPrice,\n baseUnitPrice: group.baseUnitPrice,\n serviceFee: group.serviceFee,\n seats: group.seats,\n availableToAdd: availableToAddByCategory.get(categoryId) ?? 0,\n });\n }\n return ordered;\n }, [cartSeats, seatDetailsById, selectedSeatIdArray, venue.categories]);\n\n const cartPayload = useMemo<SeatmapCartPayload>(\n () => ({\n venueId: venue.id,\n venueName: venue.name,\n seats: cartSeats,\n totalSelectedSeats,\n totalCost,\n }),\n [venue.id, venue.name, cartSeats, totalSelectedSeats, totalCost],\n );\n\n const emitCartEvent = useCallback(\n (event: SeatmapCartEvent) => {\n onCartEvent?.(event);\n },\n [onCartEvent],\n );\n\n const removeSeatFromSelection = useCallback(\n (seatId: string) => {\n const seat = seatDetailsById.get(seatId);\n if (seat?.sectionId) {\n onSeatClick?.(seatId, seat.sectionId);\n }\n const next = selectedSeatIdArray.filter((id) => id !== seatId);\n setSelection(next);\n },\n [seatDetailsById, onSeatClick, selectedSeatIdArray, setSelection],\n );\n\n const handleSeatCanvasClick = useCallback(\n (seatId: string, sectionId: string) => {\n pendingSeatClickRef.current = seatId;\n onSeatClick?.(seatId, sectionId);\n },\n [onSeatClick],\n );\n\n const handleAddSeatInCategory = useCallback(\n (categoryId: string) => {\n const selectedSet = new Set(selectedSeatIdArray);\n const selectedInCategory = selectedSeatIdArray.filter(\n (selectedSeatId) => seatDetailsById.get(selectedSeatId)?.categoryId === categoryId,\n );\n const anchorSeatId =\n (lastUserAnchorByCategory[categoryId] && seatDetailsById.has(lastUserAnchorByCategory[categoryId])\n ? lastUserAnchorByCategory[categoryId]\n : null) ?? selectedInCategory[selectedInCategory.length - 1] ?? null;\n const anchorSeat = anchorSeatId ? seatDetailsById.get(anchorSeatId) : null;\n\n const candidates = Array.from(seatDetailsById.values()).filter(\n (seat) =>\n seat.categoryId === categoryId &&\n seat.status === AVAILABLE_STATUS_ID &&\n !selectedSet.has(seat.seatId),\n );\n if (candidates.length === 0) return;\n\n let nextSeat = candidates[0];\n if (anchorSeat) {\n nextSeat = candidates.reduce((best, candidate) => {\n const bestDistance = (best.x - anchorSeat.x) ** 2 + (best.y - anchorSeat.y) ** 2;\n const candidateDistance = (candidate.x - anchorSeat.x) ** 2 + (candidate.y - anchorSeat.y) ** 2;\n return candidateDistance < bestDistance ? candidate : best;\n }, candidates[0]);\n }\n setSelection([...selectedSeatIdArray, nextSeat.seatId]);\n if (nextSeat.sectionId) {\n onSeatClick?.(nextSeat.seatId, nextSeat.sectionId);\n }\n },\n [lastUserAnchorByCategory, seatDetailsById, selectedSeatIdArray, setSelection, onSeatClick],\n );\n\n const handleRemoveLastInCategory = useCallback(\n (categoryId: string) => {\n const selectedInCategory = selectedSeatIdArray.filter(\n (selectedSeatId) => seatDetailsById.get(selectedSeatId)?.categoryId === categoryId,\n );\n const seatIdToRemove = selectedInCategory[selectedInCategory.length - 1];\n if (!seatIdToRemove) return;\n const seat = seatDetailsById.get(seatIdToRemove);\n if (seat?.sectionId) {\n onSeatClick?.(seatIdToRemove, seat.sectionId);\n }\n setSelection(selectedSeatIdArray.filter((selectedSeatId) => selectedSeatId !== seatIdToRemove));\n },\n [seatDetailsById, selectedSeatIdArray, setSelection, onSeatClick],\n );\n\n const handleProceed = useCallback(() => {\n if (cartPayload.seats.length === 0) return;\n emitCartEvent({ type: \"cart-proceed-clicked\", payload: cartPayload });\n }, [cartPayload, emitCartEvent]);\n\n const cartWidth = viewportWidth > 1200 ? Math.floor(viewportWidth / 5) : viewportWidth;\n\n return (\n <div\n className={classNames.root}\n style={mergeStyles({ width: \"100%\", height: \"100%\", position: \"relative\" }, styles.root)}\n >\n <SeatmapCanvas\n onSeatClick={handleSeatCanvasClick}\n onSeatHover={onSeatHover}\n showSectionLabels={showLabels}\n enableSeatHover={showLabels}\n />\n {(showStatuses || showCategories) && (\n <aside\n aria-label={messages.legendAriaLabel}\n className={mergeClassNames(\"seatmap-viewer__legend\", classNames.legendContainer)}\n style={styles.legendContainer}\n >\n {showStatuses && (\n <section className=\"seatmap-viewer__legend-section\">\n <p className={mergeClassNames(\"seatmap-viewer__legend-heading-base\", classNames.legendHeading)} style={styles.legendHeading}>{messages.legendStatusesTitle}</p>\n <ul className={mergeClassNames(\"seatmap-viewer__legend-list-base\", classNames.legendList)} style={styles.legendList}>\n {venue.seatStatuses.map((status) => (\n <li key={status.id} className={mergeClassNames(\"seatmap-viewer__legend-item-base\", classNames.legendItem)} style={styles.legendItem}>\n <span\n className={mergeClassNames(\"seatmap-viewer__legend-swatch-base\", classNames.legendSwatch)}\n style={mergeStyles({ background: status.color }, styles.legendSwatch)}\n />\n <span>{status.name}</span>\n </li>\n ))}\n </ul>\n </section>\n )}\n {showStatuses && showCategories && (\n <div\n className={mergeClassNames(\"seatmap-viewer__legend-divider-base\", classNames.legendDivider)}\n style={styles.legendDivider}\n />\n )}\n {showCategories && (\n <section className=\"seatmap-viewer__legend-section\">\n <p className={mergeClassNames(\"seatmap-viewer__legend-heading-base\", classNames.legendHeading)} style={styles.legendHeading}>{messages.legendPricesTitle}</p>\n <ul className={mergeClassNames(\"seatmap-viewer__legend-list-base\", classNames.legendList)} style={styles.legendList}>\n {venue.categories.map((category) => (\n <li key={category.id} className={mergeClassNames(\"seatmap-viewer__legend-item-base\", classNames.legendItem)} style={styles.legendItem}>\n <span\n className={mergeClassNames(\"seatmap-viewer__legend-swatch-base\", classNames.legendSwatch)}\n style={mergeStyles({ background: category.color }, styles.legendSwatch)}\n />\n <span>{category.name}</span>\n </li>\n ))}\n </ul>\n </section>\n )}\n </aside>\n )}\n\n {!isCartOpen && (\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-chip-base\", classNames.cartChip)}\n onClick={() => setIsCartOpen(true)}\n style={styles.cartChip}\n >\n {messages.cartChipLabel(totalSelectedSeats)}\n </button>\n )}\n\n {isCartOpen && (\n <aside\n aria-label={messages.cartAriaLabel}\n className={mergeClassNames(\"seatmap-viewer__cart-popup-base\", classNames.cartPopup)}\n style={mergeStyles({ width: cartWidth, maxWidth: \"100%\" }, styles.cartPopup)}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-header-base\", classNames.cartHeader)}\n style={styles.cartHeader}\n >\n <strong\n className={mergeClassNames(\"seatmap-viewer__cart-header-title-base\", classNames.cartHeaderTitle)}\n style={styles.cartHeaderTitle}\n >\n {messages.cartHeaderTitle}\n </strong>\n <button\n type=\"button\"\n onClick={() => setIsCartOpen(false)}\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n title={messages.cartCloseLabel}\n aria-label={messages.cartCloseLabel}\n >\n x\n </button>\n </div>\n\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-body-base\", classNames.cartBody)}\n style={styles.cartBody}\n >\n {groupedSeatsList.length === 0 ? (\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-empty-state-base\", classNames.cartEmptyState)}\n style={styles.cartEmptyState}\n >\n {messages.cartEmptyState}\n </div>\n ) : (\n groupedSeatsList.map((group) => (\n <article\n key={group.categoryId}\n className={mergeClassNames(\"seatmap-viewer__cart-group-base\", classNames.cartGroup)}\n style={styles.cartGroup}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-title-base\", classNames.cartGroupTitle)}\n style={styles.cartGroupTitle}\n >\n {group.categoryName}\n </div>\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-meta-base\", classNames.cartGroupMeta)}\n style={styles.cartGroupMeta}\n >\n {messages.cartGroupMeta(group.seats.length, formatMoney(group.unitPrice, locale, currency))}\n </div>\n {group.serviceFee > 0 && (\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-meta-base\", classNames.cartGroupMeta)}\n style={styles.cartGroupMeta}\n >\n {messages.cartGroupFee(\n formatMoney(group.baseUnitPrice, locale, currency),\n formatMoney(group.serviceFee, locale, currency),\n group.baseUnitPrice > 0 ? formatPercent(group.serviceFee / group.baseUnitPrice, locale) : null,\n )}\n </div>\n )}\n <div className={mergeClassNames(\"seatmap-viewer__cart-quantity-row-base\", classNames.cartQuantityRow)} style={styles.cartQuantityRow}>\n <div className=\"seatmap-viewer__cart-quantity-controls\">\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => handleRemoveLastInCategory(group.categoryId)}\n disabled={group.seats.length === 0}\n aria-label={messages.cartRemoveOneAriaLabel(group.categoryName)}\n >\n -\n </button>\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-quantity-value-base\", classNames.cartQuantityValue)}\n style={styles.cartQuantityValue}\n >\n {group.seats.length}\n </span>\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => handleAddSeatInCategory(group.categoryId)}\n disabled={group.availableToAdd === 0}\n aria-label={messages.cartAddOneAriaLabel(group.categoryName)}\n >\n +\n </button>\n </div>\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-group-total-base\", classNames.cartGroupTotal)}\n style={styles.cartGroupTotal}\n >\n {formatMoney(group.seats.reduce((sum, seat) => sum + seat.unitPrice, 0), locale, currency)}\n </span>\n </div>\n <div className=\"seatmap-viewer__cart-seat-list\">\n {group.seats.map((seat) => (\n <div\n key={seat.seatId}\n className={mergeClassNames(\"seatmap-viewer__cart-seat-row-base\", classNames.cartSeatRow)}\n style={styles.cartSeatRow}\n >\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-seat-label-base\", classNames.cartSeatLabel)}\n style={styles.cartSeatLabel}\n >\n {seat.sectionLabel ?? messages.sectionFallbackLabel} {seat.rowLabel ? `- ${seat.rowLabel}${seat.seatLabel}` : `- ${seat.seatLabel}`}\n </span>\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => removeSeatFromSelection(seat.seatId)}\n title={messages.cartRemoveSeatTitle}\n aria-label={messages.cartRemoveSeatAriaLabel(seat.seatLabel)}\n >\n <TrashIcon />\n </button>\n </div>\n ))}\n </div>\n </article>\n ))\n )}\n </div>\n\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-footer-base\", classNames.cartFooter)}\n style={styles.cartFooter}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-summary-base\", classNames.cartSummary)}\n style={styles.cartSummary}\n >\n {totalServiceFee > 0 && <div>{messages.cartServiceFeeSummary(formatMoney(totalServiceFee, locale, currency))}</div>}\n <div>{messages.cartSummary(totalSelectedSeats, formatMoney(totalCost, locale, currency))}</div>\n </div>\n <button\n type=\"button\"\n disabled={cartSeats.length === 0}\n onClick={handleProceed}\n className={mergeClassNames(\"seatmap-viewer__cart-proceed-button-base\", classNames.cartProceedButton)}\n style={styles.cartProceedButton}\n >\n {messages.cartProceedButton}\n </button>\n </div>\n </aside>\n )}\n\n {showLabels && <TooltipOverlay renderTooltip={effectiveTooltipRenderer} />}\n </div>\n );\n}\n\nexport function SeatmapViewer({\n venue,\n onSeatClick,\n onSeatHover,\n onSelectionChange,\n renderTooltip,\n showLabels = true,\n className,\n onCartEvent,\n locale,\n currency,\n styles,\n classNames,\n messages,\n}: SeatmapViewerProps) {\n return (\n <SeatmapProvider venue={venue}>\n <div\n className={mergeClassNames(className, classNames?.root)}\n style={mergeStyles({ width: \"100%\", height: \"100%\", position: \"relative\" }, styles?.root)}\n >\n <SeatmapViewerContent\n venue={venue}\n onSeatClick={onSeatClick}\n onSeatHover={onSeatHover}\n onSelectionChange={onSelectionChange}\n renderTooltip={renderTooltip}\n showLabels={showLabels}\n onCartEvent={onCartEvent}\n locale={locale}\n currency={currency}\n styles={styles}\n classNames={classNames}\n messages={messages}\n />\n </div>\n </SeatmapProvider>\n );\n}\n","import type { CSSProperties } from \"react\";\n\nexport const seatmapViewerStyleSlots = [\n \"root\",\n \"legendContainer\",\n \"legendHeading\",\n \"legendList\",\n \"legendItem\",\n \"legendSwatch\",\n \"legendDivider\",\n \"cartChip\",\n \"cartPopup\",\n \"cartHeader\",\n \"cartHeaderTitle\",\n \"cartIconButton\",\n \"cartBody\",\n \"cartEmptyState\",\n \"cartGroup\",\n \"cartGroupTitle\",\n \"cartGroupMeta\",\n \"cartQuantityRow\",\n \"cartQuantityValue\",\n \"cartGroupTotal\",\n \"cartSeatRow\",\n \"cartSeatLabel\",\n \"cartFooter\",\n \"cartSummary\",\n \"cartProceedButton\",\n] as const;\n\nexport type SeatmapViewerStyleSlot = (typeof seatmapViewerStyleSlots)[number];\nexport type SeatmapViewerStyles = Partial<Record<SeatmapViewerStyleSlot, CSSProperties>>;\nexport type SeatmapViewerClassNames = Partial<Record<SeatmapViewerStyleSlot, string>>;\n\nconst STYLE_CONTRACT_CLASS_PREFIX = \"seatmap-viewer\";\n\nexport const seatmapViewerDefaultClassNames: Record<SeatmapViewerStyleSlot, string> = {\n root: `${STYLE_CONTRACT_CLASS_PREFIX}__root`,\n legendContainer: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-container`,\n legendHeading: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-heading`,\n legendList: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-list`,\n legendItem: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-item`,\n legendSwatch: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-swatch`,\n legendDivider: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-divider`,\n cartChip: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-chip`,\n cartPopup: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-popup`,\n cartHeader: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-header`,\n cartHeaderTitle: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-header-title`,\n cartIconButton: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-icon-button`,\n cartBody: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-body`,\n cartEmptyState: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-empty-state`,\n cartGroup: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group`,\n cartGroupTitle: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-title`,\n cartGroupMeta: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-meta`,\n cartQuantityRow: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-quantity-row`,\n cartQuantityValue: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-quantity-value`,\n cartGroupTotal: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-total`,\n cartSeatRow: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-seat-row`,\n cartSeatLabel: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-seat-label`,\n cartFooter: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-footer`,\n cartSummary: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-summary`,\n cartProceedButton: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-proceed-button`,\n};\n\nexport const seatmapViewerCssVariables = [\n \"--seatmap-surface\",\n \"--seatmap-surface-elevated\",\n \"--seatmap-surface-muted\",\n \"--seatmap-on-surface\",\n \"--seatmap-on-surface-variant\",\n \"--seatmap-outline\",\n \"--seatmap-outline-variant\",\n \"--seatmap-primary\",\n \"--seatmap-on-primary\",\n \"--seatmap-error\",\n \"--seatmap-on-error\",\n \"--seatmap-state-layer-hover\",\n \"--seatmap-state-layer-pressed\",\n \"--seatmap-focus-ring\",\n \"--seatmap-radius-sm\",\n \"--seatmap-radius-md\",\n \"--seatmap-radius-lg\",\n \"--seatmap-shadow-raised\",\n \"--seatmap-shadow-elevated\",\n \"--seatmap-shadow-floating\",\n \"--seatmap-viewer-surface\",\n \"--seatmap-viewer-surface-elevated\",\n \"--seatmap-viewer-surface-muted\",\n \"--seatmap-viewer-border\",\n \"--seatmap-viewer-border-subtle\",\n \"--seatmap-viewer-text\",\n \"--seatmap-viewer-text-muted\",\n \"--seatmap-viewer-accent\",\n \"--seatmap-viewer-accent-disabled\",\n \"--seatmap-viewer-accent-text\",\n \"--seatmap-viewer-danger\",\n \"--seatmap-viewer-danger-text\",\n \"--seatmap-viewer-state-layer-hover\",\n \"--seatmap-viewer-state-layer-pressed\",\n \"--seatmap-viewer-focus-ring\",\n \"--seatmap-viewer-radius-sm\",\n \"--seatmap-viewer-radius-md\",\n \"--seatmap-viewer-radius-lg\",\n \"--seatmap-viewer-shadow-raised\",\n \"--seatmap-viewer-shadow-elevated\",\n \"--seatmap-viewer-shadow-floating\",\n] as const;\n\nexport type SeatmapViewerCssVariable = (typeof seatmapViewerCssVariables)[number];\nexport type SeatmapViewerCssVariableValues = Partial<Record<SeatmapViewerCssVariable, string>>;\n\nexport const seatmapViewerStyleContract = {\n slots: seatmapViewerStyleSlots,\n defaultClassNames: seatmapViewerDefaultClassNames,\n cssVariables: seatmapViewerCssVariables,\n} as const;\n","import type { CSSProperties } from \"react\";\nimport { seatmapViewerDefaultClassNames } from \"../styleContract\";\nimport type { SeatmapViewerClassNames, SeatmapViewerCssVariableValues } from \"../styleContract\";\n\nexport const seatmapViewerSharedThemeRootClassName = \"seatmap-viewer-theme\";\n\nexport const seatmapViewerSharedThemeClassNames: SeatmapViewerClassNames = {\n ...seatmapViewerDefaultClassNames,\n};\n\nexport const seatmapViewerSharedThemeVariables: SeatmapViewerCssVariableValues = {\n \"--seatmap-surface\": \"var(--ds-surface-container-low, rgba(24, 24, 24, 0.94))\",\n \"--seatmap-surface-elevated\": \"var(--ds-surface-container, rgba(28, 28, 28, 0.98))\",\n \"--seatmap-surface-muted\": \"var(--ds-surface-container-high, rgba(33, 33, 33, 1))\",\n \"--seatmap-on-surface\": \"var(--ds-on-surface, #e5e2e1)\",\n \"--seatmap-on-surface-variant\": \"var(--ds-on-surface-variant, #9a9694)\",\n \"--seatmap-outline\": \"var(--ds-input-border, rgba(92, 89, 87, 0.65))\",\n \"--seatmap-outline-variant\": \"var(--ds-border-subtle, rgba(92, 89, 87, 0.45))\",\n \"--seatmap-primary\": \"var(--ds-primary, #6f663a)\",\n \"--seatmap-on-primary\": \"var(--ds-on-primary, #f5edc7)\",\n \"--seatmap-error\": \"var(--ds-error, #ad3f3f)\",\n \"--seatmap-on-error\": \"var(--ds-on-error, #ffffff)\",\n \"--seatmap-state-layer-hover\":\n \"var(--ds-primary-wash, color-mix(in srgb, var(--ds-primary, #6f663a) 12%, transparent))\",\n \"--seatmap-state-layer-pressed\":\n \"var(--ds-primary-wash-strong, color-mix(in srgb, var(--ds-primary, #6f663a) 16%, transparent))\",\n \"--seatmap-focus-ring\":\n \"var(--ds-primary-ring, color-mix(in srgb, var(--ds-primary, #6f663a) 55%, transparent))\",\n \"--seatmap-radius-sm\": \"var(--ds-radius-structural-sm, 8px)\",\n \"--seatmap-radius-md\": \"var(--ds-radius-structural, 10px)\",\n \"--seatmap-radius-lg\": \"calc(var(--ds-radius-structural, 10px) + 6px)\",\n \"--seatmap-shadow-raised\": \"var(--ds-shadow-ambient-sm, 0 8px 20px rgba(0, 0, 0, 0.22))\",\n \"--seatmap-shadow-elevated\": \"var(--ds-shadow-ambient, 0 10px 24px rgba(0, 0, 0, 0.28))\",\n \"--seatmap-shadow-floating\": \"var(--ds-shadow-ambient-lg, 0 14px 34px rgba(0, 0, 0, 0.32))\",\n \"--seatmap-viewer-surface\": \"var(--seatmap-surface)\",\n \"--seatmap-viewer-surface-elevated\": \"var(--seatmap-surface-elevated)\",\n \"--seatmap-viewer-surface-muted\": \"var(--seatmap-surface-muted)\",\n \"--seatmap-viewer-border\": \"var(--seatmap-outline)\",\n \"--seatmap-viewer-border-subtle\": \"var(--seatmap-outline-variant)\",\n \"--seatmap-viewer-text\": \"var(--seatmap-on-surface)\",\n \"--seatmap-viewer-text-muted\": \"var(--seatmap-on-surface-variant)\",\n \"--seatmap-viewer-accent\": \"var(--seatmap-primary)\",\n \"--seatmap-viewer-accent-disabled\":\n \"color-mix(in srgb, var(--seatmap-primary) 28%, var(--seatmap-surface-muted))\",\n \"--seatmap-viewer-accent-text\": \"var(--seatmap-on-primary)\",\n \"--seatmap-viewer-danger\": \"var(--seatmap-error)\",\n \"--seatmap-viewer-danger-text\": \"var(--seatmap-on-error)\",\n \"--seatmap-viewer-state-layer-hover\": \"var(--seatmap-state-layer-hover)\",\n \"--seatmap-viewer-state-layer-pressed\": \"var(--seatmap-state-layer-pressed)\",\n \"--seatmap-viewer-focus-ring\": \"var(--seatmap-focus-ring)\",\n \"--seatmap-viewer-radius-sm\": \"var(--seatmap-radius-sm)\",\n \"--seatmap-viewer-radius-md\": \"var(--seatmap-radius-md)\",\n \"--seatmap-viewer-radius-lg\": \"var(--seatmap-radius-lg)\",\n \"--seatmap-viewer-shadow-raised\": \"var(--seatmap-shadow-raised)\",\n \"--seatmap-viewer-shadow-elevated\": \"var(--seatmap-shadow-elevated)\",\n \"--seatmap-viewer-shadow-floating\": \"var(--seatmap-shadow-floating)\",\n};\n\nexport const seatmapViewerSharedTheme = {\n rootClassName: seatmapViewerSharedThemeRootClassName,\n classNames: seatmapViewerSharedThemeClassNames,\n variables: seatmapViewerSharedThemeVariables,\n} as const;\n\nexport function getSeatmapViewerSharedThemeRootStyle(\n overrides?: SeatmapViewerCssVariableValues,\n): CSSProperties {\n return {\n ...seatmapViewerSharedThemeVariables,\n ...(overrides ?? {}),\n } as CSSProperties;\n}\n"]}
1
+ {"version":3,"file":"index.cjs","names":["AVAILABLE_STATUS_ID","useMemo","useSelection","useState","useRef","useEffect","useCallback","SeatmapCanvas","TooltipOverlay","SeatmapProvider"],"sources":["../src/SeatmapViewer.tsx","../src/styleContract.ts","../src/theme/seatmapViewerTheme.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties, type ReactNode } from \"react\";\nimport { AVAILABLE_STATUS_ID } from \"@nex125/seatmap-core\";\nimport type { PricingCategory, SeatStatus, Venue } from \"@nex125/seatmap-core\";\nimport { SeatmapCanvas, SeatmapProvider, TooltipOverlay, useSelection } from \"@nex125/seatmap-react\";\nimport type { TooltipData } from \"@nex125/seatmap-react\";\nimport type { SeatmapViewerClassNames, SeatmapViewerStyles } from \"./styleContract\";\n\nexport interface SeatmapCartSeat {\n seatId: string;\n seatLabel: string;\n rowLabel: string | null;\n sectionId: string | null;\n sectionLabel: string | null;\n categoryId: string;\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n}\n\ninterface SeatDetails extends SeatmapCartSeat {\n status: SeatStatus;\n x: number;\n y: number;\n}\n\nexport interface SeatmapCartPayload {\n venueId: string;\n venueName: string;\n seats: SeatmapCartSeat[];\n totalSelectedSeats: number;\n totalCost: number;\n}\n\nexport interface SeatmapCartEvent {\n type: \"cart-proceed-clicked\";\n payload: SeatmapCartPayload;\n}\n\nexport interface SeatmapViewerProps {\n venue: Venue;\n onSeatClick?: (seatId: string, sectionId: string) => void;\n onSeatHover?: (seatId: string | null, sectionId: string | null) => void;\n onSelectionChange?: (seatIds: string[]) => void;\n onStatusUpdate?: (seatId: string, status: SeatStatus) => void;\n renderTooltip?: (data: TooltipData) => ReactNode;\n showLabels?: boolean;\n className?: string;\n onCartEvent?: (event: SeatmapCartEvent) => void;\n locale?: string;\n currency?: string;\n maxSelectedSeats?: number;\n styles?: SeatmapViewerStyles;\n classNames?: SeatmapViewerClassNames;\n messages?: Partial<SeatmapViewerMessages>;\n}\n\nexport interface SeatmapViewerMessages {\n uncategorizedCategoryName: string;\n sectionFallbackLabel: string;\n tableLabel: (tableLabel: string) => string;\n tooltipSeatLabel: (rowLabel: string, seatLabel: string) => string;\n tooltipStatusAvailable: string;\n tooltipPriceLabel: (price: string) => string;\n tooltipPriceUnavailable: string;\n legendAriaLabel: string;\n legendStatusesTitle: string;\n legendPricesTitle: string;\n cartChipLabel: (selectedCount: number) => string;\n cartAriaLabel: string;\n cartHeaderTitle: string;\n cartCloseLabel: string;\n cartEmptyState: string;\n cartGroupMeta: (count: number, unitPrice: string) => string;\n cartGroupFee: (basePrice: string, serviceFee: string, serviceFeePercent: string | null) => string;\n cartRemoveOneAriaLabel: (categoryName: string) => string;\n cartAddOneAriaLabel: (categoryName: string) => string;\n cartRemoveSeatTitle: string;\n cartRemoveSeatAriaLabel: (seatLabel: string) => string;\n cartServiceFeeSummary: (serviceFeeTotal: string) => string;\n cartSummary: (count: number, totalCost: string) => string;\n cartProceedButton: string;\n}\n\nexport const defaultSeatmapViewerMessages: SeatmapViewerMessages = {\n uncategorizedCategoryName: \"Uncategorized\",\n sectionFallbackLabel: \"Section\",\n tableLabel: (tableLabel) => `Table ${tableLabel}`,\n tooltipSeatLabel: (rowLabel, seatLabel) => `Row ${rowLabel}, Seat ${seatLabel}`,\n tooltipStatusAvailable: \"Available\",\n tooltipPriceLabel: (price) => `Price: ${price}`,\n tooltipPriceUnavailable: \"Price unavailable\",\n legendAriaLabel: \"Seatmap legend\",\n legendStatusesTitle: \"Seat statuses\",\n legendPricesTitle: \"Prices\",\n cartChipLabel: (selectedCount) => `Cart (${selectedCount})`,\n cartAriaLabel: \"Selected seats cart\",\n cartHeaderTitle: \"Selected seats cart\",\n cartCloseLabel: \"Close cart\",\n cartEmptyState: \"No seats selected yet.\",\n cartGroupMeta: (count, unitPrice) => `${count} tickets - ${unitPrice} each`,\n cartGroupFee: (basePrice, serviceFee, serviceFeePercent) =>\n serviceFeePercent\n ? `Base ${basePrice} + service fee ${serviceFee} (${serviceFeePercent})`\n : `Base ${basePrice} + service fee ${serviceFee}`,\n cartRemoveOneAriaLabel: (categoryName) => `Remove one seat from ${categoryName}`,\n cartAddOneAriaLabel: (categoryName) => `Add one seat to ${categoryName}`,\n cartRemoveSeatTitle: \"Remove seat\",\n cartRemoveSeatAriaLabel: (seatLabel) => `Remove seat ${seatLabel}`,\n cartServiceFeeSummary: (serviceFeeTotal) => `Service fee included: ${serviceFeeTotal}`,\n cartSummary: (count, totalCost) => `${count} seats - Total ${totalCost}`,\n cartProceedButton: \"Proceed\",\n};\n\nfunction getCategoryPriceBreakdown(category: PricingCategory | undefined): {\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n} {\n if (!category) {\n return { unitPrice: 0, baseUnitPrice: 0, serviceFee: 0 };\n }\n\n const baseUnitPrice = Number.isFinite(category.basePrice) ? (category.basePrice as number) : 0;\n const serviceFee = Number.isFinite(category.serviceFee) ? (category.serviceFee as number) : 0;\n\n if (category.isPriceOverridden && Number.isFinite(category.overriddenPrice)) {\n return {\n unitPrice: category.overriddenPrice ?? 0,\n baseUnitPrice,\n serviceFee,\n };\n }\n\n if (Number.isFinite(category.backendPrice)) {\n return {\n unitPrice: category.backendPrice as number,\n baseUnitPrice,\n serviceFee,\n };\n }\n\n return {\n unitPrice: baseUnitPrice + serviceFee,\n baseUnitPrice,\n serviceFee,\n };\n}\n\nfunction formatPercent(value: number, locale: string): string {\n return new Intl.NumberFormat(locale, {\n style: \"percent\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\nfunction formatMoney(value: number, locale: string, currency: string): string {\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n }).format(value);\n}\n\nfunction DefaultSeatmapViewerTooltip({\n data,\n locale,\n currency,\n messages,\n}: {\n data: TooltipData;\n locale: string;\n currency: string;\n messages: SeatmapViewerMessages;\n}) {\n const statusLabel =\n data.statusName ??\n (data.seat.status === AVAILABLE_STATUS_ID ? messages.tooltipStatusAvailable : data.seat.status);\n const priceLabel =\n typeof data.price === \"number\"\n ? messages.tooltipPriceLabel(formatMoney(data.price, locale, currency))\n : messages.tooltipPriceUnavailable;\n\n return (\n <div\n style={{\n background: \"var(--seatmap-tooltip-surface, color-mix(in srgb, var(--seatmap-surface-container-low, #181818) 94%, transparent))\",\n border: \"1px solid var(--seatmap-tooltip-border, var(--seatmap-outline, #353331))\",\n borderRadius: 10,\n padding: \"8px 14px\",\n color: \"var(--seatmap-tooltip-text, var(--seatmap-on-surface, #e5e2e1))\",\n fontSize: 13,\n fontFamily: \"system-ui\",\n pointerEvents: \"none\",\n whiteSpace: \"nowrap\",\n }}\n >\n <div style={{ fontWeight: 600, marginBottom: 2 }}>{data.section.label}</div>\n <div>{messages.tooltipSeatLabel(data.row.label, data.seat.label)}</div>\n <div\n style={{\n color: \"var(--seatmap-tooltip-muted-text, var(--seatmap-on-surface-variant, #9a9694))\",\n fontSize: 12,\n marginTop: 2,\n }}\n >\n {statusLabel}\n </div>\n <div\n style={{\n color: \"var(--seatmap-tooltip-muted-text, var(--seatmap-on-surface-variant, #9a9694))\",\n fontSize: 12,\n marginTop: 2,\n }}\n >\n {priceLabel}\n </div>\n </div>\n );\n}\n\nfunction TrashIcon() {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M9 3h6l1 2h4v2H4V5h4l1-2Zm1 7h2v8h-2v-8Zm4 0h2v8h-2v-8ZM7 10h2v8H7v-8Zm-1 12h12a2 2 0 0 0 2-2V8H4v12a2 2 0 0 0 2 2Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nfunction mergeStyles(base: CSSProperties, override?: CSSProperties): CSSProperties {\n if (!override) return base;\n return { ...base, ...override };\n}\n\nfunction mergeClassNames(...classNames: Array<string | undefined>): string | undefined {\n const merged = classNames.filter(Boolean).join(\" \").trim();\n return merged.length > 0 ? merged : undefined;\n}\n\nexport type SeatmapViewerContentProps = Omit<SeatmapViewerProps, \"className\"> & { showLabels: boolean };\n\nexport function SeatmapViewerContent({\n venue,\n onSeatClick,\n onSeatHover,\n onSelectionChange,\n renderTooltip,\n showLabels,\n onCartEvent,\n locale = \"en-US\",\n currency = \"BYN\",\n maxSelectedSeats,\n styles = {},\n classNames = {},\n messages: messagesOverride = {},\n}: SeatmapViewerContentProps) {\n const messages = useMemo(\n () => ({ ...defaultSeatmapViewerMessages, ...messagesOverride }),\n [messagesOverride],\n );\n const { selectedSeatIds, setSelection } = useSelection();\n const [isCartOpen, setIsCartOpen] = useState(false);\n const [lastUserAnchorByCategory, setLastUserAnchorByCategory] = useState<Record<string, string>>({});\n const [viewportWidth, setViewportWidth] = useState<number>(() =>\n typeof window === \"undefined\" ? 1280 : window.innerWidth,\n );\n const previousSelectedRef = useRef<string[]>([]);\n const pendingSeatClickRef = useRef<string | null>(null);\n\n const showStatuses = venue.seatStatuses.length > 0;\n const showCategories = venue.categories.length > 0;\n const selectedSeatIdArray = useMemo(() => Array.from(selectedSeatIds), [selectedSeatIds]);\n const seatDetailsById = useMemo(() => {\n const categoryMap = new Map(venue.categories.map((category) => [category.id, category]));\n const next = new Map<string, SeatDetails>();\n\n for (const section of venue.sections) {\n const cos = Math.cos(section.rotation);\n const sin = Math.sin(section.rotation);\n for (const row of section.rows) {\n for (const seat of row.seats) {\n const category = categoryMap.get(seat.categoryId);\n const priceBreakdown = getCategoryPriceBreakdown(category);\n next.set(seat.id, {\n seatId: seat.id,\n seatLabel: seat.label,\n rowLabel: row.label,\n sectionId: section.id,\n sectionLabel: section.label,\n categoryId: seat.categoryId,\n categoryName: category?.name ?? messages.uncategorizedCategoryName,\n unitPrice: priceBreakdown.unitPrice,\n baseUnitPrice: priceBreakdown.baseUnitPrice,\n serviceFee: priceBreakdown.serviceFee,\n status: seat.status,\n x: section.position.x + seat.position.x * cos - seat.position.y * sin,\n y: section.position.y + seat.position.x * sin + seat.position.y * cos,\n });\n }\n }\n }\n\n for (const table of venue.tables) {\n for (const seat of table.seats) {\n const category = categoryMap.get(seat.categoryId);\n const priceBreakdown = getCategoryPriceBreakdown(category);\n next.set(seat.id, {\n seatId: seat.id,\n seatLabel: seat.label,\n rowLabel: null,\n sectionId: table.id,\n sectionLabel: messages.tableLabel(table.label),\n categoryId: seat.categoryId,\n categoryName: category?.name ?? messages.uncategorizedCategoryName,\n unitPrice: priceBreakdown.unitPrice,\n baseUnitPrice: priceBreakdown.baseUnitPrice,\n serviceFee: priceBreakdown.serviceFee,\n status: seat.status,\n x: table.position.x + seat.position.x,\n y: table.position.y + seat.position.y,\n });\n }\n }\n return next;\n }, [venue, messages]);\n\n const selectedSeats = useMemo(() => {\n const ordered: SeatDetails[] = [];\n for (const selectedSeatId of selectedSeatIdArray) {\n const seat = seatDetailsById.get(selectedSeatId);\n if (seat) ordered.push(seat);\n }\n return ordered;\n }, [seatDetailsById, selectedSeatIdArray]);\n\n useEffect(() => {\n onSelectionChange?.(selectedSeatIdArray);\n }, [onSelectionChange, selectedSeatIdArray]);\n\n useEffect(() => {\n const previous = new Set(previousSelectedRef.current);\n const added = selectedSeatIdArray.filter((seatId) => !previous.has(seatId));\n const clickedSeatId = pendingSeatClickRef.current;\n if (clickedSeatId && added.includes(clickedSeatId)) {\n const clickedSeat = seatDetailsById.get(clickedSeatId);\n if (clickedSeat) {\n setLastUserAnchorByCategory((current) => ({\n ...current,\n [clickedSeat.categoryId]: clickedSeatId,\n }));\n }\n }\n previousSelectedRef.current = selectedSeatIdArray;\n pendingSeatClickRef.current = null;\n }, [seatDetailsById, selectedSeatIdArray]);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const onResize = () => setViewportWidth(window.innerWidth);\n window.addEventListener(\"resize\", onResize);\n return () => window.removeEventListener(\"resize\", onResize);\n }, []);\n\n const cartSeats = useMemo<SeatmapCartSeat[]>(\n () =>\n selectedSeats.map((seat) => ({\n seatId: seat.seatId,\n seatLabel: seat.seatLabel,\n rowLabel: seat.rowLabel,\n sectionId: seat.sectionId,\n sectionLabel: seat.sectionLabel,\n categoryId: seat.categoryId,\n categoryName: seat.categoryName,\n unitPrice: seat.unitPrice,\n baseUnitPrice: seat.baseUnitPrice,\n serviceFee: seat.serviceFee,\n })),\n [selectedSeats],\n );\n\n const totalSelectedSeats = useMemo(() => cartSeats.length, [cartSeats]);\n const isSelectionOverLimit =\n typeof maxSelectedSeats === \"number\" && totalSelectedSeats > maxSelectedSeats;\n const totalCost = useMemo(() => cartSeats.reduce((sum, seat) => sum + seat.unitPrice, 0), [cartSeats]);\n const totalServiceFee = useMemo(() => cartSeats.reduce((sum, seat) => sum + seat.serviceFee, 0), [cartSeats]);\n const effectiveTooltipRenderer = useCallback(\n (data: TooltipData) => {\n if (renderTooltip) {\n return renderTooltip(data);\n }\n\n return (\n <DefaultSeatmapViewerTooltip\n data={data}\n locale={locale}\n currency={currency}\n messages={messages}\n />\n );\n },\n [currency, locale, messages, renderTooltip],\n );\n\n const groupedSeatsList = useMemo(() => {\n const grouped = new Map<string, {\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n seats: SeatmapCartSeat[];\n }>();\n for (const seat of cartSeats) {\n const existing = grouped.get(seat.categoryId);\n if (existing) {\n existing.seats.push(seat);\n } else {\n grouped.set(seat.categoryId, {\n categoryName: seat.categoryName,\n unitPrice: seat.unitPrice,\n baseUnitPrice: seat.baseUnitPrice,\n serviceFee: seat.serviceFee,\n seats: [seat],\n });\n }\n }\n\n const ordered: Array<{\n categoryId: string;\n categoryName: string;\n unitPrice: number;\n baseUnitPrice: number;\n serviceFee: number;\n seats: SeatmapCartSeat[];\n availableToAdd: number;\n }> = [];\n const selectedSet = new Set(selectedSeatIdArray);\n\n const availableToAddByCategory = new Map<string, number>();\n for (const seat of seatDetailsById.values()) {\n if (seat.status !== AVAILABLE_STATUS_ID || selectedSet.has(seat.seatId)) continue;\n availableToAddByCategory.set(\n seat.categoryId,\n (availableToAddByCategory.get(seat.categoryId) ?? 0) + 1,\n );\n }\n\n for (const category of venue.categories) {\n const group = grouped.get(category.id);\n if (!group) continue;\n ordered.push({\n categoryId: category.id,\n categoryName: group.categoryName,\n unitPrice: group.unitPrice,\n baseUnitPrice: group.baseUnitPrice,\n serviceFee: group.serviceFee,\n seats: group.seats,\n availableToAdd: availableToAddByCategory.get(category.id) ?? 0,\n });\n }\n\n for (const [categoryId, group] of grouped.entries()) {\n if (venue.categories.some((category) => category.id === categoryId)) continue;\n ordered.push({\n categoryId,\n categoryName: group.categoryName,\n unitPrice: group.unitPrice,\n baseUnitPrice: group.baseUnitPrice,\n serviceFee: group.serviceFee,\n seats: group.seats,\n availableToAdd: availableToAddByCategory.get(categoryId) ?? 0,\n });\n }\n return ordered;\n }, [cartSeats, seatDetailsById, selectedSeatIdArray, venue.categories]);\n\n const cartPayload = useMemo<SeatmapCartPayload>(\n () => ({\n venueId: venue.id,\n venueName: venue.name,\n seats: cartSeats,\n totalSelectedSeats,\n totalCost,\n }),\n [venue.id, venue.name, cartSeats, totalSelectedSeats, totalCost],\n );\n\n const emitCartEvent = useCallback(\n (event: SeatmapCartEvent) => {\n onCartEvent?.(event);\n },\n [onCartEvent],\n );\n\n const removeSeatFromSelection = useCallback(\n (seatId: string) => {\n const seat = seatDetailsById.get(seatId);\n if (seat?.sectionId) {\n onSeatClick?.(seatId, seat.sectionId);\n }\n const next = selectedSeatIdArray.filter((id) => id !== seatId);\n setSelection(next);\n },\n [seatDetailsById, onSeatClick, selectedSeatIdArray, setSelection],\n );\n\n const handleSeatCanvasClick = useCallback(\n (seatId: string, sectionId: string) => {\n pendingSeatClickRef.current = seatId;\n onSeatClick?.(seatId, sectionId);\n },\n [onSeatClick],\n );\n\n const handleAddSeatInCategory = useCallback(\n (categoryId: string) => {\n const selectedSet = new Set(selectedSeatIdArray);\n const selectedInCategory = selectedSeatIdArray.filter(\n (selectedSeatId) => seatDetailsById.get(selectedSeatId)?.categoryId === categoryId,\n );\n const anchorSeatId =\n (lastUserAnchorByCategory[categoryId] && seatDetailsById.has(lastUserAnchorByCategory[categoryId])\n ? lastUserAnchorByCategory[categoryId]\n : null) ?? selectedInCategory[selectedInCategory.length - 1] ?? null;\n const anchorSeat = anchorSeatId ? seatDetailsById.get(anchorSeatId) : null;\n\n const candidates = Array.from(seatDetailsById.values()).filter(\n (seat) =>\n seat.categoryId === categoryId &&\n seat.status === AVAILABLE_STATUS_ID &&\n !selectedSet.has(seat.seatId),\n );\n if (candidates.length === 0) return;\n\n let nextSeat = candidates[0];\n if (anchorSeat) {\n nextSeat = candidates.reduce((best, candidate) => {\n const bestDistance = (best.x - anchorSeat.x) ** 2 + (best.y - anchorSeat.y) ** 2;\n const candidateDistance = (candidate.x - anchorSeat.x) ** 2 + (candidate.y - anchorSeat.y) ** 2;\n return candidateDistance < bestDistance ? candidate : best;\n }, candidates[0]);\n }\n setSelection([...selectedSeatIdArray, nextSeat.seatId]);\n if (nextSeat.sectionId) {\n onSeatClick?.(nextSeat.seatId, nextSeat.sectionId);\n }\n },\n [lastUserAnchorByCategory, seatDetailsById, selectedSeatIdArray, setSelection, onSeatClick],\n );\n\n const handleRemoveLastInCategory = useCallback(\n (categoryId: string) => {\n const selectedInCategory = selectedSeatIdArray.filter(\n (selectedSeatId) => seatDetailsById.get(selectedSeatId)?.categoryId === categoryId,\n );\n const seatIdToRemove = selectedInCategory[selectedInCategory.length - 1];\n if (!seatIdToRemove) return;\n const seat = seatDetailsById.get(seatIdToRemove);\n if (seat?.sectionId) {\n onSeatClick?.(seatIdToRemove, seat.sectionId);\n }\n setSelection(selectedSeatIdArray.filter((selectedSeatId) => selectedSeatId !== seatIdToRemove));\n },\n [seatDetailsById, selectedSeatIdArray, setSelection, onSeatClick],\n );\n\n const handleProceed = useCallback(() => {\n if (cartPayload.seats.length === 0 || isSelectionOverLimit) return;\n emitCartEvent({ type: \"cart-proceed-clicked\", payload: cartPayload });\n }, [cartPayload, emitCartEvent, isSelectionOverLimit]);\n\n const cartWidth = viewportWidth > 1200 ? Math.floor(viewportWidth / 5) : viewportWidth;\n\n return (\n <div\n className={classNames.root}\n style={mergeStyles({ width: \"100%\", height: \"100%\", position: \"relative\" }, styles.root)}\n >\n <SeatmapCanvas\n onSeatClick={handleSeatCanvasClick}\n onSeatHover={onSeatHover}\n showSectionLabels={showLabels}\n enableSeatHover={showLabels}\n />\n {(showStatuses || showCategories) && (\n <aside\n aria-label={messages.legendAriaLabel}\n className={mergeClassNames(\"seatmap-viewer__legend\", classNames.legendContainer)}\n style={styles.legendContainer}\n >\n {showStatuses && (\n <section className=\"seatmap-viewer__legend-section\">\n <p className={mergeClassNames(\"seatmap-viewer__legend-heading-base\", classNames.legendHeading)} style={styles.legendHeading}>{messages.legendStatusesTitle}</p>\n <ul className={mergeClassNames(\"seatmap-viewer__legend-list-base\", classNames.legendList)} style={styles.legendList}>\n {venue.seatStatuses.map((status) => (\n <li key={status.id} className={mergeClassNames(\"seatmap-viewer__legend-item-base\", classNames.legendItem)} style={styles.legendItem}>\n <span\n className={mergeClassNames(\"seatmap-viewer__legend-swatch-base\", classNames.legendSwatch)}\n style={mergeStyles({ background: status.color }, styles.legendSwatch)}\n />\n <span>{status.name}</span>\n </li>\n ))}\n </ul>\n </section>\n )}\n {showStatuses && showCategories && (\n <div\n className={mergeClassNames(\"seatmap-viewer__legend-divider-base\", classNames.legendDivider)}\n style={styles.legendDivider}\n />\n )}\n {showCategories && (\n <section className=\"seatmap-viewer__legend-section\">\n <p className={mergeClassNames(\"seatmap-viewer__legend-heading-base\", classNames.legendHeading)} style={styles.legendHeading}>{messages.legendPricesTitle}</p>\n <ul className={mergeClassNames(\"seatmap-viewer__legend-list-base\", classNames.legendList)} style={styles.legendList}>\n {venue.categories.map((category) => (\n <li key={category.id} className={mergeClassNames(\"seatmap-viewer__legend-item-base\", classNames.legendItem)} style={styles.legendItem}>\n <span\n className={mergeClassNames(\"seatmap-viewer__legend-swatch-base\", classNames.legendSwatch)}\n style={mergeStyles({ background: category.color }, styles.legendSwatch)}\n />\n <span>{category.name}</span>\n </li>\n ))}\n </ul>\n </section>\n )}\n </aside>\n )}\n\n {!isCartOpen && (\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-chip-base\", classNames.cartChip)}\n onClick={() => setIsCartOpen(true)}\n disabled={isSelectionOverLimit}\n style={styles.cartChip}\n >\n {messages.cartChipLabel(totalSelectedSeats)}\n </button>\n )}\n\n {isCartOpen && (\n <aside\n aria-label={messages.cartAriaLabel}\n className={mergeClassNames(\"seatmap-viewer__cart-popup-base\", classNames.cartPopup)}\n style={mergeStyles({ width: cartWidth, maxWidth: \"100%\" }, styles.cartPopup)}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-header-base\", classNames.cartHeader)}\n style={styles.cartHeader}\n >\n <strong\n className={mergeClassNames(\"seatmap-viewer__cart-header-title-base\", classNames.cartHeaderTitle)}\n style={styles.cartHeaderTitle}\n >\n {messages.cartHeaderTitle}\n </strong>\n <button\n type=\"button\"\n onClick={() => setIsCartOpen(false)}\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n title={messages.cartCloseLabel}\n aria-label={messages.cartCloseLabel}\n >\n x\n </button>\n </div>\n\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-body-base\", classNames.cartBody)}\n style={styles.cartBody}\n >\n {groupedSeatsList.length === 0 ? (\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-empty-state-base\", classNames.cartEmptyState)}\n style={styles.cartEmptyState}\n >\n {messages.cartEmptyState}\n </div>\n ) : (\n groupedSeatsList.map((group) => (\n <article\n key={group.categoryId}\n className={mergeClassNames(\"seatmap-viewer__cart-group-base\", classNames.cartGroup)}\n style={styles.cartGroup}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-title-base\", classNames.cartGroupTitle)}\n style={styles.cartGroupTitle}\n >\n {group.categoryName}\n </div>\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-meta-base\", classNames.cartGroupMeta)}\n style={styles.cartGroupMeta}\n >\n {messages.cartGroupMeta(group.seats.length, formatMoney(group.unitPrice, locale, currency))}\n </div>\n {group.serviceFee > 0 && (\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-group-meta-base\", classNames.cartGroupMeta)}\n style={styles.cartGroupMeta}\n >\n {messages.cartGroupFee(\n formatMoney(group.baseUnitPrice, locale, currency),\n formatMoney(group.serviceFee, locale, currency),\n group.baseUnitPrice > 0 ? formatPercent(group.serviceFee / group.baseUnitPrice, locale) : null,\n )}\n </div>\n )}\n <div className={mergeClassNames(\"seatmap-viewer__cart-quantity-row-base\", classNames.cartQuantityRow)} style={styles.cartQuantityRow}>\n <div className=\"seatmap-viewer__cart-quantity-controls\">\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => handleRemoveLastInCategory(group.categoryId)}\n disabled={group.seats.length === 0}\n aria-label={messages.cartRemoveOneAriaLabel(group.categoryName)}\n >\n -\n </button>\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-quantity-value-base\", classNames.cartQuantityValue)}\n style={styles.cartQuantityValue}\n >\n {group.seats.length}\n </span>\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => handleAddSeatInCategory(group.categoryId)}\n disabled={group.availableToAdd === 0}\n aria-label={messages.cartAddOneAriaLabel(group.categoryName)}\n >\n +\n </button>\n </div>\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-group-total-base\", classNames.cartGroupTotal)}\n style={styles.cartGroupTotal}\n >\n {formatMoney(group.seats.reduce((sum, seat) => sum + seat.unitPrice, 0), locale, currency)}\n </span>\n </div>\n <div className=\"seatmap-viewer__cart-seat-list\">\n {group.seats.map((seat) => (\n <div\n key={seat.seatId}\n className={mergeClassNames(\"seatmap-viewer__cart-seat-row-base\", classNames.cartSeatRow)}\n style={styles.cartSeatRow}\n >\n <span\n className={mergeClassNames(\"seatmap-viewer__cart-seat-label-base\", classNames.cartSeatLabel)}\n style={styles.cartSeatLabel}\n >\n {seat.sectionLabel ?? messages.sectionFallbackLabel} {seat.rowLabel ? `- ${seat.rowLabel}${seat.seatLabel}` : `- ${seat.seatLabel}`}\n </span>\n <button\n type=\"button\"\n className={mergeClassNames(\"seatmap-viewer__cart-icon-button-base\", classNames.cartIconButton)}\n style={styles.cartIconButton}\n onClick={() => removeSeatFromSelection(seat.seatId)}\n title={messages.cartRemoveSeatTitle}\n aria-label={messages.cartRemoveSeatAriaLabel(seat.seatLabel)}\n >\n <TrashIcon />\n </button>\n </div>\n ))}\n </div>\n </article>\n ))\n )}\n </div>\n\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-footer-base\", classNames.cartFooter)}\n style={styles.cartFooter}\n >\n <div\n className={mergeClassNames(\"seatmap-viewer__cart-summary-base\", classNames.cartSummary)}\n style={styles.cartSummary}\n >\n <div>{messages.cartSummary(totalSelectedSeats, formatMoney(totalCost, locale, currency))}</div>\n {totalServiceFee > 0 && <div>{messages.cartServiceFeeSummary(formatMoney(totalServiceFee, locale, currency))}</div>}\n </div>\n <button\n type=\"button\"\n disabled={cartSeats.length === 0 || isSelectionOverLimit}\n onClick={handleProceed}\n className={mergeClassNames(\"seatmap-viewer__cart-proceed-button-base\", classNames.cartProceedButton)}\n style={styles.cartProceedButton}\n >\n {messages.cartProceedButton}\n </button>\n </div>\n </aside>\n )}\n\n {showLabels && <TooltipOverlay renderTooltip={effectiveTooltipRenderer} />}\n </div>\n );\n}\n\nexport function SeatmapViewer({\n venue,\n onSeatClick,\n onSeatHover,\n onSelectionChange,\n renderTooltip,\n showLabels = true,\n className,\n onCartEvent,\n locale,\n currency,\n maxSelectedSeats,\n styles,\n classNames,\n messages,\n}: SeatmapViewerProps) {\n return (\n <SeatmapProvider venue={venue}>\n <div\n className={mergeClassNames(className, classNames?.root)}\n style={mergeStyles({ width: \"100%\", height: \"100%\", position: \"relative\" }, styles?.root)}\n >\n <SeatmapViewerContent\n venue={venue}\n onSeatClick={onSeatClick}\n onSeatHover={onSeatHover}\n onSelectionChange={onSelectionChange}\n renderTooltip={renderTooltip}\n showLabels={showLabels}\n onCartEvent={onCartEvent}\n locale={locale}\n currency={currency}\n maxSelectedSeats={maxSelectedSeats}\n styles={styles}\n classNames={classNames}\n messages={messages}\n />\n </div>\n </SeatmapProvider>\n );\n}\n","import type { CSSProperties } from \"react\";\n\nexport const seatmapViewerStyleSlots = [\n \"root\",\n \"legendContainer\",\n \"legendHeading\",\n \"legendList\",\n \"legendItem\",\n \"legendSwatch\",\n \"legendDivider\",\n \"cartChip\",\n \"cartPopup\",\n \"cartHeader\",\n \"cartHeaderTitle\",\n \"cartIconButton\",\n \"cartBody\",\n \"cartEmptyState\",\n \"cartGroup\",\n \"cartGroupTitle\",\n \"cartGroupMeta\",\n \"cartQuantityRow\",\n \"cartQuantityValue\",\n \"cartGroupTotal\",\n \"cartSeatRow\",\n \"cartSeatLabel\",\n \"cartFooter\",\n \"cartSummary\",\n \"cartProceedButton\",\n] as const;\n\nexport type SeatmapViewerStyleSlot = (typeof seatmapViewerStyleSlots)[number];\nexport type SeatmapViewerStyles = Partial<Record<SeatmapViewerStyleSlot, CSSProperties>>;\nexport type SeatmapViewerClassNames = Partial<Record<SeatmapViewerStyleSlot, string>>;\n\nconst STYLE_CONTRACT_CLASS_PREFIX = \"seatmap-viewer\";\n\nexport const seatmapViewerDefaultClassNames: Record<SeatmapViewerStyleSlot, string> = {\n root: `${STYLE_CONTRACT_CLASS_PREFIX}__root`,\n legendContainer: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-container`,\n legendHeading: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-heading`,\n legendList: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-list`,\n legendItem: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-item`,\n legendSwatch: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-swatch`,\n legendDivider: `${STYLE_CONTRACT_CLASS_PREFIX}__legend-divider`,\n cartChip: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-chip`,\n cartPopup: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-popup`,\n cartHeader: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-header`,\n cartHeaderTitle: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-header-title`,\n cartIconButton: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-icon-button`,\n cartBody: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-body`,\n cartEmptyState: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-empty-state`,\n cartGroup: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group`,\n cartGroupTitle: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-title`,\n cartGroupMeta: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-meta`,\n cartQuantityRow: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-quantity-row`,\n cartQuantityValue: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-quantity-value`,\n cartGroupTotal: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-group-total`,\n cartSeatRow: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-seat-row`,\n cartSeatLabel: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-seat-label`,\n cartFooter: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-footer`,\n cartSummary: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-summary`,\n cartProceedButton: `${STYLE_CONTRACT_CLASS_PREFIX}__cart-proceed-button`,\n};\n\nexport const seatmapViewerCssVariables = [\n \"--seatmap-surface\",\n \"--seatmap-surface-elevated\",\n \"--seatmap-surface-muted\",\n \"--seatmap-on-surface\",\n \"--seatmap-on-surface-variant\",\n \"--seatmap-outline\",\n \"--seatmap-outline-variant\",\n \"--seatmap-primary\",\n \"--seatmap-on-primary\",\n \"--seatmap-error\",\n \"--seatmap-on-error\",\n \"--seatmap-state-layer-hover\",\n \"--seatmap-state-layer-pressed\",\n \"--seatmap-focus-ring\",\n \"--seatmap-radius-sm\",\n \"--seatmap-radius-md\",\n \"--seatmap-radius-lg\",\n \"--seatmap-shadow-raised\",\n \"--seatmap-shadow-elevated\",\n \"--seatmap-shadow-floating\",\n \"--seatmap-viewer-surface\",\n \"--seatmap-viewer-surface-elevated\",\n \"--seatmap-viewer-surface-muted\",\n \"--seatmap-viewer-border\",\n \"--seatmap-viewer-border-subtle\",\n \"--seatmap-viewer-text\",\n \"--seatmap-viewer-text-muted\",\n \"--seatmap-viewer-accent\",\n \"--seatmap-viewer-accent-disabled\",\n \"--seatmap-viewer-accent-text\",\n \"--seatmap-viewer-danger\",\n \"--seatmap-viewer-danger-text\",\n \"--seatmap-viewer-state-layer-hover\",\n \"--seatmap-viewer-state-layer-pressed\",\n \"--seatmap-viewer-focus-ring\",\n \"--seatmap-viewer-radius-sm\",\n \"--seatmap-viewer-radius-md\",\n \"--seatmap-viewer-radius-lg\",\n \"--seatmap-viewer-shadow-raised\",\n \"--seatmap-viewer-shadow-elevated\",\n \"--seatmap-viewer-shadow-floating\",\n] as const;\n\nexport type SeatmapViewerCssVariable = (typeof seatmapViewerCssVariables)[number];\nexport type SeatmapViewerCssVariableValues = Partial<Record<SeatmapViewerCssVariable, string>>;\n\nexport const seatmapViewerStyleContract = {\n slots: seatmapViewerStyleSlots,\n defaultClassNames: seatmapViewerDefaultClassNames,\n cssVariables: seatmapViewerCssVariables,\n} as const;\n","import type { CSSProperties } from \"react\";\nimport { seatmapViewerDefaultClassNames } from \"../styleContract\";\nimport type { SeatmapViewerClassNames, SeatmapViewerCssVariableValues } from \"../styleContract\";\n\nexport const seatmapViewerSharedThemeRootClassName = \"seatmap-viewer-theme\";\n\nexport const seatmapViewerSharedThemeClassNames: SeatmapViewerClassNames = {\n ...seatmapViewerDefaultClassNames,\n};\n\nexport const seatmapViewerSharedThemeVariables: SeatmapViewerCssVariableValues = {\n \"--seatmap-surface\": \"var(--ds-surface-container-low, rgba(24, 24, 24, 0.94))\",\n \"--seatmap-surface-elevated\": \"var(--ds-surface-container, rgba(28, 28, 28, 0.98))\",\n \"--seatmap-surface-muted\": \"var(--ds-surface-container-high, rgba(33, 33, 33, 1))\",\n \"--seatmap-on-surface\": \"var(--ds-on-surface, #e5e2e1)\",\n \"--seatmap-on-surface-variant\": \"var(--ds-on-surface-variant, #9a9694)\",\n \"--seatmap-outline\": \"var(--ds-input-border, rgba(92, 89, 87, 0.65))\",\n \"--seatmap-outline-variant\": \"var(--ds-border-subtle, rgba(92, 89, 87, 0.45))\",\n \"--seatmap-primary\": \"var(--ds-primary, #6f663a)\",\n \"--seatmap-on-primary\": \"var(--ds-on-primary, #f5edc7)\",\n \"--seatmap-error\": \"var(--ds-error, #ad3f3f)\",\n \"--seatmap-on-error\": \"var(--ds-on-error, #ffffff)\",\n \"--seatmap-state-layer-hover\":\n \"var(--ds-primary-wash, color-mix(in srgb, var(--ds-primary, #6f663a) 12%, transparent))\",\n \"--seatmap-state-layer-pressed\":\n \"var(--ds-primary-wash-strong, color-mix(in srgb, var(--ds-primary, #6f663a) 16%, transparent))\",\n \"--seatmap-focus-ring\":\n \"var(--ds-primary-ring, color-mix(in srgb, var(--ds-primary, #6f663a) 55%, transparent))\",\n \"--seatmap-radius-sm\": \"var(--ds-radius-structural-sm, 8px)\",\n \"--seatmap-radius-md\": \"var(--ds-radius-structural, 10px)\",\n \"--seatmap-radius-lg\": \"calc(var(--ds-radius-structural, 10px) + 6px)\",\n \"--seatmap-shadow-raised\": \"var(--ds-shadow-ambient-sm, 0 8px 20px rgba(0, 0, 0, 0.22))\",\n \"--seatmap-shadow-elevated\": \"var(--ds-shadow-ambient, 0 10px 24px rgba(0, 0, 0, 0.28))\",\n \"--seatmap-shadow-floating\": \"var(--ds-shadow-ambient-lg, 0 14px 34px rgba(0, 0, 0, 0.32))\",\n \"--seatmap-viewer-surface\": \"var(--seatmap-surface)\",\n \"--seatmap-viewer-surface-elevated\": \"var(--seatmap-surface-elevated)\",\n \"--seatmap-viewer-surface-muted\": \"var(--seatmap-surface-muted)\",\n \"--seatmap-viewer-border\": \"var(--seatmap-outline)\",\n \"--seatmap-viewer-border-subtle\": \"var(--seatmap-outline-variant)\",\n \"--seatmap-viewer-text\": \"var(--seatmap-on-surface)\",\n \"--seatmap-viewer-text-muted\": \"var(--seatmap-on-surface-variant)\",\n \"--seatmap-viewer-accent\": \"var(--seatmap-primary)\",\n \"--seatmap-viewer-accent-disabled\":\n \"color-mix(in srgb, var(--seatmap-primary) 28%, var(--seatmap-surface-muted))\",\n \"--seatmap-viewer-accent-text\": \"var(--seatmap-on-primary)\",\n \"--seatmap-viewer-danger\": \"var(--seatmap-error)\",\n \"--seatmap-viewer-danger-text\": \"var(--seatmap-on-error)\",\n \"--seatmap-viewer-state-layer-hover\": \"var(--seatmap-state-layer-hover)\",\n \"--seatmap-viewer-state-layer-pressed\": \"var(--seatmap-state-layer-pressed)\",\n \"--seatmap-viewer-focus-ring\": \"var(--seatmap-focus-ring)\",\n \"--seatmap-viewer-radius-sm\": \"var(--seatmap-radius-sm)\",\n \"--seatmap-viewer-radius-md\": \"var(--seatmap-radius-md)\",\n \"--seatmap-viewer-radius-lg\": \"var(--seatmap-radius-lg)\",\n \"--seatmap-viewer-shadow-raised\": \"var(--seatmap-shadow-raised)\",\n \"--seatmap-viewer-shadow-elevated\": \"var(--seatmap-shadow-elevated)\",\n \"--seatmap-viewer-shadow-floating\": \"var(--seatmap-shadow-floating)\",\n};\n\nexport const seatmapViewerSharedTheme = {\n rootClassName: seatmapViewerSharedThemeRootClassName,\n classNames: seatmapViewerSharedThemeClassNames,\n variables: seatmapViewerSharedThemeVariables,\n} as const;\n\nexport function getSeatmapViewerSharedThemeRootStyle(\n overrides?: SeatmapViewerCssVariableValues,\n): CSSProperties {\n return {\n ...seatmapViewerSharedThemeVariables,\n ...(overrides ?? {}),\n } as CSSProperties;\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,24 +1,7 @@
1
- export { SeatmapViewer_alias_1 as SeatmapViewer } from './_tsup-dts-rollup.js';
2
- export { SeatmapViewerContent_alias_1 as SeatmapViewerContent } from './_tsup-dts-rollup.js';
3
- export { SeatmapViewerProps_alias_1 as SeatmapViewerProps } from './_tsup-dts-rollup.js';
4
- export { SeatmapViewerContentProps_alias_1 as SeatmapViewerContentProps } from './_tsup-dts-rollup.js';
5
- export { SeatmapViewerMessages_alias_1 as SeatmapViewerMessages } from './_tsup-dts-rollup.js';
6
- export { SeatmapCartSeat_alias_1 as SeatmapCartSeat } from './_tsup-dts-rollup.js';
7
- export { SeatmapCartPayload_alias_1 as SeatmapCartPayload } from './_tsup-dts-rollup.js';
8
- export { SeatmapCartEvent_alias_1 as SeatmapCartEvent } from './_tsup-dts-rollup.js';
9
- export { defaultSeatmapViewerMessages_alias_1 as defaultSeatmapViewerMessages } from './_tsup-dts-rollup.js';
10
- export { SeatmapViewerStyleSlot } from './_tsup-dts-rollup.js';
11
- export { SeatmapViewerStyles } from './_tsup-dts-rollup.js';
12
- export { SeatmapViewerClassNames } from './_tsup-dts-rollup.js';
13
- export { SeatmapViewerCssVariable } from './_tsup-dts-rollup.js';
14
- export { SeatmapViewerCssVariableValues } from './_tsup-dts-rollup.js';
15
- export { seatmapViewerStyleSlots } from './_tsup-dts-rollup.js';
16
- export { seatmapViewerDefaultClassNames } from './_tsup-dts-rollup.js';
17
- export { seatmapViewerCssVariables } from './_tsup-dts-rollup.js';
18
- export { seatmapViewerStyleContract } from './_tsup-dts-rollup.js';
19
- export { getSeatmapViewerSharedThemeRootStyle } from './_tsup-dts-rollup.js';
20
- export { seatmapViewerSharedThemeRootClassName } from './_tsup-dts-rollup.js';
21
- export { seatmapViewerSharedThemeClassNames } from './_tsup-dts-rollup.js';
22
- export { seatmapViewerSharedThemeVariables } from './_tsup-dts-rollup.js';
23
- export { seatmapViewerSharedTheme } from './_tsup-dts-rollup.js';
24
- export { useSeatStatus } from './_tsup-dts-rollup.js';
1
+ export { SeatmapViewer, SeatmapViewerContent } from "./SeatmapViewer.js";
2
+ export type { SeatmapViewerProps, SeatmapViewerContentProps, SeatmapViewerMessages, SeatmapCartSeat, SeatmapCartPayload, SeatmapCartEvent, } from "./SeatmapViewer.js";
3
+ export { defaultSeatmapViewerMessages } from "./SeatmapViewer.js";
4
+ export type { SeatmapViewerStyleSlot, SeatmapViewerStyles, SeatmapViewerClassNames, SeatmapViewerCssVariable, SeatmapViewerCssVariableValues, } from "./styleContract.js";
5
+ export { seatmapViewerStyleSlots, seatmapViewerDefaultClassNames, seatmapViewerCssVariables, seatmapViewerStyleContract, } from "./styleContract.js";
6
+ export { getSeatmapViewerSharedThemeRootStyle, seatmapViewerSharedThemeRootClassName, seatmapViewerSharedThemeClassNames, seatmapViewerSharedThemeVariables, seatmapViewerSharedTheme, } from "./theme/seatmapViewerTheme.js";
7
+ export { useSeatStatus } from "@nex125/seatmap-react";