@seatlayer/js 0.71.4 → 0.72.0

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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, SeatHoverDetails, FloorLabelStyle, SectionSummary, ChartTheme, LodRung, PickerController, AccessibilityType, ExpandedSeat } from '@seatlayer/core';
1
+ import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AvailabilityRefreshOutcome, PickerController, AccessibilityType, ExpandedSeat } from '@seatlayer/core';
2
2
  export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
3
3
  import { T as ThemeMode } from './channelsMode-goczEzyt.cjs';
4
4
  export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, U as InventoryBookingObject, V as InventoryBookingState, W as InventoryBookingsPage, X as InventoryBookingsQuery, Y as LogEntry, Z as LogPage, _ as ManageApi, $ as ManageApiError, a0 as ReportByStatus, a1 as ReportCategoryMeta, a2 as ReportCategoryRow, a3 as ReportResult, a4 as SeatManager, a5 as SeatManagerActionResult, a6 as SeatManagerActivity, a7 as SeatManagerCapability, a8 as SeatManagerConnection, a9 as SeatManagerFilteredSection, aa as SeatManagerMode, ab as SeatManagerOptions, ac as SeatManagerSelectionValidity, ad as SeatManagerTallies, ae as SelectionSourceRow } from './channelsMode-goczEzyt.cjs';
@@ -1291,35 +1291,6 @@ interface SeatPickerOptions {
1291
1291
  onError?: (err: unknown) => void;
1292
1292
  }
1293
1293
 
1294
- /**
1295
- * SeatingChart — the embeddable buyer picker.
1296
- *
1297
- * A thin wrapper over the shared PickerController (src/picker/PickerController):
1298
- * it owns the mount <div> + the public embed contract (hold-only — the SDK hands
1299
- * the holdId to the host page for a server-side book) and delegates all transport
1300
- * + booking to the controller, so the SDK inherits every fix made for the live
1301
- * buyer page and the demo picker.
1302
- */
1303
-
1304
- /** A seat as surfaced to the host page (prices resolved from the chart's categories). */
1305
- type SelectedSeat = PickerSeat;
1306
- interface GAAreaAvailability {
1307
- id: string;
1308
- label: string;
1309
- capacity: number;
1310
- available: number;
1311
- categoryKey: string;
1312
- price: number;
1313
- currency: string;
1314
- /** Buyer-facing copy authored separately from stable inventory identity. */
1315
- displayLabel?: string;
1316
- displayType?: string;
1317
- tiers?: Array<{
1318
- id: string;
1319
- name: string;
1320
- price: number;
1321
- }>;
1322
- }
1323
1294
  /**
1324
1295
  * Serializable state exposed to hosted native picker chrome. It deliberately
1325
1296
  * contains buyer-display data only: never API keys, buyer-access bearers,
@@ -1422,6 +1393,18 @@ interface SeatingChartPickerState {
1422
1393
  categoryFilter: string[] | null;
1423
1394
  accessibilityFilter: string[] | null;
1424
1395
  hideLimitedView: boolean;
1396
+ /**
1397
+ * The access needs THIS event actually offers, with live free counts, in
1398
+ * the engine's canonical order.
1399
+ *
1400
+ * A native or web sheet that renders the whole twelve-key taxonomy offers
1401
+ * provisions the chart does not have — chips that filter to an empty map,
1402
+ * which reads as a venue that has the provision and has sold out of it.
1403
+ * A provision that exists but is currently all taken appears here with
1404
+ * `count: 0`, so "this venue has none" and "this venue's are taken" stay
1405
+ * different answers. Empty on a chart with no accessible inventory.
1406
+ */
1407
+ accessNeeds: PickerAccessNeed[];
1425
1408
  };
1426
1409
  selection: {
1427
1410
  seats: SelectedSeat[];
@@ -1434,6 +1417,36 @@ interface SeatingChartPickerState {
1434
1417
  reason?: string;
1435
1418
  };
1436
1419
  }
1420
+
1421
+ /**
1422
+ * SeatingChart — the embeddable buyer picker.
1423
+ *
1424
+ * A thin wrapper over the shared PickerController (src/picker/PickerController):
1425
+ * it owns the mount <div> + the public embed contract (hold-only — the SDK hands
1426
+ * the holdId to the host page for a server-side book) and delegates all transport
1427
+ * + booking to the controller, so the SDK inherits every fix made for the live
1428
+ * buyer page and the demo picker.
1429
+ */
1430
+
1431
+ /** A seat as surfaced to the host page (prices resolved from the chart's categories). */
1432
+ type SelectedSeat = PickerSeat;
1433
+ interface GAAreaAvailability {
1434
+ id: string;
1435
+ label: string;
1436
+ capacity: number;
1437
+ available: number;
1438
+ categoryKey: string;
1439
+ price: number;
1440
+ currency: string;
1441
+ /** Buyer-facing copy authored separately from stable inventory identity. */
1442
+ displayLabel?: string;
1443
+ displayType?: string;
1444
+ tiers?: Array<{
1445
+ id: string;
1446
+ name: string;
1447
+ price: number;
1448
+ }>;
1449
+ }
1437
1450
  interface SeatingChartOptions {
1438
1451
  /** CSS selector or an HTMLElement to render into. */
1439
1452
  container: string | HTMLElement;
@@ -1949,8 +1962,17 @@ declare class SeatingChart {
1949
1962
  * and its own legacy frames. Nothing about the public path changes.
1950
1963
  */
1951
1964
  private startRealtime;
1952
- /** Re-read live inventory without remounting or dropping buyer state. */
1953
- refreshAvailability(): Promise<void>;
1965
+ /**
1966
+ * Re-read OTHER buyers' inventory without remounting or disturbing this
1967
+ * buyer's own — see `@seatlayer/core`'s `availabilityRefresh`.
1968
+ *
1969
+ * Returns what actually changed for him: seats he had selected but never
1970
+ * held which somebody else has taken (already deselected), and whether his
1971
+ * own hold lapsed while he was away, with the labels that are still free so
1972
+ * a surface can offer them back. Nothing here moves the camera, the rung or
1973
+ * the cart total, and a seat he holds is never reported against him.
1974
+ */
1975
+ refreshAvailability(): Promise<AvailabilityRefreshOutcome>;
1954
1976
  /**
1955
1977
  * Re-acquire the buyer access session — call after your app has re-authorized
1956
1978
  * the buyer (a revoked session cannot be recovered any other way). Resolves
@@ -2736,6 +2758,10 @@ declare class SeatPicker implements GaPromptPicker {
2736
2758
  private ctaPhase;
2737
2759
  /** The ♿ control and its menu — one node, in the map's bottom-left corner. */
2738
2760
  private a11yMenu;
2761
+ private detachAttention;
2762
+ /** The telling of a hold that ended while the buyer was away — the state
2763
+ * part is the engine's; see pickerHoldLapse.ts. */
2764
+ private readonly lapse;
2739
2765
  /** Rail scroll listener attached once; the rail repaints many times. */
2740
2766
  private railEdgesBound;
2741
2767
  private fsFallback;
@@ -3065,7 +3091,6 @@ declare class SeatPicker implements GaPromptPicker {
3065
3091
  private refreshOfferAvailability;
3066
3092
  private offerPrice;
3067
3093
  private applyChannelPricing;
3068
- /** The compact current/upcoming offer card above Ticket prices. */
3069
3094
  private syncOffer;
3070
3095
  /**
3071
3096
  * The price the buyer will actually pay for an object/category/tier: its
@@ -3924,6 +3949,8 @@ interface SeasonOperation {
3924
3949
  holdId: string;
3925
3950
  expiresAt: number;
3926
3951
  policy: 'fixed_inclusion_same_seat';
3952
+ pricingAuthority: 'host';
3953
+ authoritativeAmountIncluded: false;
3927
3954
  state: SeasonOperationState;
3928
3955
  bookingRef: string | null;
3929
3956
  location: string;
@@ -3940,6 +3967,8 @@ interface SeasonCheckoutHandoff {
3940
3967
  holdId: string;
3941
3968
  expiresAt: number;
3942
3969
  policy: 'fixed_inclusion_same_seat';
3970
+ pricingAuthority: 'host';
3971
+ authoritativeAmountIncluded: false;
3943
3972
  state: SeasonOperationState;
3944
3973
  allocations: Array<{
3945
3974
  eventKey: string;
@@ -3967,6 +3996,16 @@ interface SeasonStatusEvent {
3967
3996
  message: string;
3968
3997
  operationId?: string;
3969
3998
  }
3999
+ /** Host-authored commercial context. Display only; checkout must re-price server-side. */
4000
+ interface SeasonOfferPresentation {
4001
+ eyebrow?: string;
4002
+ priceLabel?: string;
4003
+ compareAtPriceLabel?: string;
4004
+ savingsLabel?: string;
4005
+ priceNote?: string;
4006
+ benefits?: readonly string[];
4007
+ renewalLabel?: string;
4008
+ }
3970
4009
  interface SeasonPickerOptions {
3971
4010
  container: string | HTMLElement;
3972
4011
  season: string;
@@ -3975,10 +4014,36 @@ interface SeasonPickerOptions {
3975
4014
  buyerAccessToken?: string | BuyerAccessToken;
3976
4015
  initialOperationId?: string;
3977
4016
  recoveryTimeoutMs?: number;
4017
+ realtimePollMs?: number;
3978
4018
  fetch?: typeof fetch;
4019
+ offer?: SeasonOfferPresentation;
4020
+ maxSelection?: number;
4021
+ selectedObjects?: string[];
4022
+ selectableObjects?: string[] | null;
4023
+ numberOfPlacesToSelect?: number;
4024
+ selectionValidators?: PickerSelectionValidator[];
4025
+ locale?: string;
4026
+ messages?: Record<string, string>;
4027
+ languages?: string[];
4028
+ colorblindSafe?: boolean;
4029
+ initialView?: RendererViewMode;
4030
+ enable3D?: boolean;
4031
+ max3DSeats?: number;
4032
+ hideBadge?: boolean;
4033
+ theme?: SeatPickerTheme;
4034
+ confirmSelection?: boolean;
4035
+ seatView?: boolean;
4036
+ onSelectionChange?: (seats: PickerSeat[]) => void;
4037
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
4038
+ onBuyerViewChange?: (state: {
4039
+ view: SeatPickerBuyerView;
4040
+ seatId?: string;
4041
+ }) => void;
4042
+ onAnalytics?: (event: string, props: Record<string, unknown>) => void;
3979
4043
  onHold?: (handoff: SeasonCheckoutHandoff) => void;
3980
4044
  onHoldChange?: (handoff: SeasonCheckoutHandoff | null) => void;
3981
4045
  onContinue?: (handoff: SeasonCheckoutHandoff) => void;
4046
+ onHoldExpired?: () => void;
3982
4047
  onRenewalIntent?: (intent: SeasonRenewalIntent) => void;
3983
4048
  onAccessExpired?: (event: BuyerAccessExpiredEvent) => void;
3984
4049
  onAccessUnavailable?: (event: BuyerAccessUnavailableEvent) => void;
@@ -4038,4 +4103,4 @@ interface AttachPickerFrameOptions {
4038
4103
  */
4039
4104
  declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
4040
4105
 
4041
- export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupAvailability, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, PerformanceGroupDestroyedError, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupRecoveryState, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type PerformanceGroupStatusEvent, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeasonApiError, type SeasonAvailability, type SeasonCheckoutHandoff, type SeasonDescriptor, type SeasonOperation, type SeasonOperationState, SeasonPicker, type SeasonPickerOptions, SeasonRecoveryTimeoutError, type SeasonRenewalIntent, type SeasonStatusEvent, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, type SeatPickerWebMcpOptions, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartSeatViewInfo, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, ThemeMode, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, shortOperationReference, ticketOfferPrices };
4106
+ export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupAvailability, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, PerformanceGroupDestroyedError, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupRecoveryState, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type PerformanceGroupStatusEvent, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeasonApiError, type SeasonAvailability, type SeasonCheckoutHandoff, type SeasonDescriptor, type SeasonOfferPresentation, type SeasonOperation, type SeasonOperationState, SeasonPicker, type SeasonPickerOptions, SeasonRecoveryTimeoutError, type SeasonRenewalIntent, type SeasonStatusEvent, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, type SeatPickerWebMcpOptions, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartSeatViewInfo, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, ThemeMode, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, shortOperationReference, ticketOfferPrices };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, SeatHoverDetails, FloorLabelStyle, SectionSummary, ChartTheme, LodRung, PickerController, AccessibilityType, ExpandedSeat } from '@seatlayer/core';
1
+ import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AvailabilityRefreshOutcome, PickerController, AccessibilityType, ExpandedSeat } from '@seatlayer/core';
2
2
  export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
3
3
  import { T as ThemeMode } from './channelsMode-goczEzyt.js';
4
4
  export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, U as InventoryBookingObject, V as InventoryBookingState, W as InventoryBookingsPage, X as InventoryBookingsQuery, Y as LogEntry, Z as LogPage, _ as ManageApi, $ as ManageApiError, a0 as ReportByStatus, a1 as ReportCategoryMeta, a2 as ReportCategoryRow, a3 as ReportResult, a4 as SeatManager, a5 as SeatManagerActionResult, a6 as SeatManagerActivity, a7 as SeatManagerCapability, a8 as SeatManagerConnection, a9 as SeatManagerFilteredSection, aa as SeatManagerMode, ab as SeatManagerOptions, ac as SeatManagerSelectionValidity, ad as SeatManagerTallies, ae as SelectionSourceRow } from './channelsMode-goczEzyt.js';
@@ -1291,35 +1291,6 @@ interface SeatPickerOptions {
1291
1291
  onError?: (err: unknown) => void;
1292
1292
  }
1293
1293
 
1294
- /**
1295
- * SeatingChart — the embeddable buyer picker.
1296
- *
1297
- * A thin wrapper over the shared PickerController (src/picker/PickerController):
1298
- * it owns the mount <div> + the public embed contract (hold-only — the SDK hands
1299
- * the holdId to the host page for a server-side book) and delegates all transport
1300
- * + booking to the controller, so the SDK inherits every fix made for the live
1301
- * buyer page and the demo picker.
1302
- */
1303
-
1304
- /** A seat as surfaced to the host page (prices resolved from the chart's categories). */
1305
- type SelectedSeat = PickerSeat;
1306
- interface GAAreaAvailability {
1307
- id: string;
1308
- label: string;
1309
- capacity: number;
1310
- available: number;
1311
- categoryKey: string;
1312
- price: number;
1313
- currency: string;
1314
- /** Buyer-facing copy authored separately from stable inventory identity. */
1315
- displayLabel?: string;
1316
- displayType?: string;
1317
- tiers?: Array<{
1318
- id: string;
1319
- name: string;
1320
- price: number;
1321
- }>;
1322
- }
1323
1294
  /**
1324
1295
  * Serializable state exposed to hosted native picker chrome. It deliberately
1325
1296
  * contains buyer-display data only: never API keys, buyer-access bearers,
@@ -1422,6 +1393,18 @@ interface SeatingChartPickerState {
1422
1393
  categoryFilter: string[] | null;
1423
1394
  accessibilityFilter: string[] | null;
1424
1395
  hideLimitedView: boolean;
1396
+ /**
1397
+ * The access needs THIS event actually offers, with live free counts, in
1398
+ * the engine's canonical order.
1399
+ *
1400
+ * A native or web sheet that renders the whole twelve-key taxonomy offers
1401
+ * provisions the chart does not have — chips that filter to an empty map,
1402
+ * which reads as a venue that has the provision and has sold out of it.
1403
+ * A provision that exists but is currently all taken appears here with
1404
+ * `count: 0`, so "this venue has none" and "this venue's are taken" stay
1405
+ * different answers. Empty on a chart with no accessible inventory.
1406
+ */
1407
+ accessNeeds: PickerAccessNeed[];
1425
1408
  };
1426
1409
  selection: {
1427
1410
  seats: SelectedSeat[];
@@ -1434,6 +1417,36 @@ interface SeatingChartPickerState {
1434
1417
  reason?: string;
1435
1418
  };
1436
1419
  }
1420
+
1421
+ /**
1422
+ * SeatingChart — the embeddable buyer picker.
1423
+ *
1424
+ * A thin wrapper over the shared PickerController (src/picker/PickerController):
1425
+ * it owns the mount <div> + the public embed contract (hold-only — the SDK hands
1426
+ * the holdId to the host page for a server-side book) and delegates all transport
1427
+ * + booking to the controller, so the SDK inherits every fix made for the live
1428
+ * buyer page and the demo picker.
1429
+ */
1430
+
1431
+ /** A seat as surfaced to the host page (prices resolved from the chart's categories). */
1432
+ type SelectedSeat = PickerSeat;
1433
+ interface GAAreaAvailability {
1434
+ id: string;
1435
+ label: string;
1436
+ capacity: number;
1437
+ available: number;
1438
+ categoryKey: string;
1439
+ price: number;
1440
+ currency: string;
1441
+ /** Buyer-facing copy authored separately from stable inventory identity. */
1442
+ displayLabel?: string;
1443
+ displayType?: string;
1444
+ tiers?: Array<{
1445
+ id: string;
1446
+ name: string;
1447
+ price: number;
1448
+ }>;
1449
+ }
1437
1450
  interface SeatingChartOptions {
1438
1451
  /** CSS selector or an HTMLElement to render into. */
1439
1452
  container: string | HTMLElement;
@@ -1949,8 +1962,17 @@ declare class SeatingChart {
1949
1962
  * and its own legacy frames. Nothing about the public path changes.
1950
1963
  */
1951
1964
  private startRealtime;
1952
- /** Re-read live inventory without remounting or dropping buyer state. */
1953
- refreshAvailability(): Promise<void>;
1965
+ /**
1966
+ * Re-read OTHER buyers' inventory without remounting or disturbing this
1967
+ * buyer's own — see `@seatlayer/core`'s `availabilityRefresh`.
1968
+ *
1969
+ * Returns what actually changed for him: seats he had selected but never
1970
+ * held which somebody else has taken (already deselected), and whether his
1971
+ * own hold lapsed while he was away, with the labels that are still free so
1972
+ * a surface can offer them back. Nothing here moves the camera, the rung or
1973
+ * the cart total, and a seat he holds is never reported against him.
1974
+ */
1975
+ refreshAvailability(): Promise<AvailabilityRefreshOutcome>;
1954
1976
  /**
1955
1977
  * Re-acquire the buyer access session — call after your app has re-authorized
1956
1978
  * the buyer (a revoked session cannot be recovered any other way). Resolves
@@ -2736,6 +2758,10 @@ declare class SeatPicker implements GaPromptPicker {
2736
2758
  private ctaPhase;
2737
2759
  /** The ♿ control and its menu — one node, in the map's bottom-left corner. */
2738
2760
  private a11yMenu;
2761
+ private detachAttention;
2762
+ /** The telling of a hold that ended while the buyer was away — the state
2763
+ * part is the engine's; see pickerHoldLapse.ts. */
2764
+ private readonly lapse;
2739
2765
  /** Rail scroll listener attached once; the rail repaints many times. */
2740
2766
  private railEdgesBound;
2741
2767
  private fsFallback;
@@ -3065,7 +3091,6 @@ declare class SeatPicker implements GaPromptPicker {
3065
3091
  private refreshOfferAvailability;
3066
3092
  private offerPrice;
3067
3093
  private applyChannelPricing;
3068
- /** The compact current/upcoming offer card above Ticket prices. */
3069
3094
  private syncOffer;
3070
3095
  /**
3071
3096
  * The price the buyer will actually pay for an object/category/tier: its
@@ -3924,6 +3949,8 @@ interface SeasonOperation {
3924
3949
  holdId: string;
3925
3950
  expiresAt: number;
3926
3951
  policy: 'fixed_inclusion_same_seat';
3952
+ pricingAuthority: 'host';
3953
+ authoritativeAmountIncluded: false;
3927
3954
  state: SeasonOperationState;
3928
3955
  bookingRef: string | null;
3929
3956
  location: string;
@@ -3940,6 +3967,8 @@ interface SeasonCheckoutHandoff {
3940
3967
  holdId: string;
3941
3968
  expiresAt: number;
3942
3969
  policy: 'fixed_inclusion_same_seat';
3970
+ pricingAuthority: 'host';
3971
+ authoritativeAmountIncluded: false;
3943
3972
  state: SeasonOperationState;
3944
3973
  allocations: Array<{
3945
3974
  eventKey: string;
@@ -3967,6 +3996,16 @@ interface SeasonStatusEvent {
3967
3996
  message: string;
3968
3997
  operationId?: string;
3969
3998
  }
3999
+ /** Host-authored commercial context. Display only; checkout must re-price server-side. */
4000
+ interface SeasonOfferPresentation {
4001
+ eyebrow?: string;
4002
+ priceLabel?: string;
4003
+ compareAtPriceLabel?: string;
4004
+ savingsLabel?: string;
4005
+ priceNote?: string;
4006
+ benefits?: readonly string[];
4007
+ renewalLabel?: string;
4008
+ }
3970
4009
  interface SeasonPickerOptions {
3971
4010
  container: string | HTMLElement;
3972
4011
  season: string;
@@ -3975,10 +4014,36 @@ interface SeasonPickerOptions {
3975
4014
  buyerAccessToken?: string | BuyerAccessToken;
3976
4015
  initialOperationId?: string;
3977
4016
  recoveryTimeoutMs?: number;
4017
+ realtimePollMs?: number;
3978
4018
  fetch?: typeof fetch;
4019
+ offer?: SeasonOfferPresentation;
4020
+ maxSelection?: number;
4021
+ selectedObjects?: string[];
4022
+ selectableObjects?: string[] | null;
4023
+ numberOfPlacesToSelect?: number;
4024
+ selectionValidators?: PickerSelectionValidator[];
4025
+ locale?: string;
4026
+ messages?: Record<string, string>;
4027
+ languages?: string[];
4028
+ colorblindSafe?: boolean;
4029
+ initialView?: RendererViewMode;
4030
+ enable3D?: boolean;
4031
+ max3DSeats?: number;
4032
+ hideBadge?: boolean;
4033
+ theme?: SeatPickerTheme;
4034
+ confirmSelection?: boolean;
4035
+ seatView?: boolean;
4036
+ onSelectionChange?: (seats: PickerSeat[]) => void;
4037
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
4038
+ onBuyerViewChange?: (state: {
4039
+ view: SeatPickerBuyerView;
4040
+ seatId?: string;
4041
+ }) => void;
4042
+ onAnalytics?: (event: string, props: Record<string, unknown>) => void;
3979
4043
  onHold?: (handoff: SeasonCheckoutHandoff) => void;
3980
4044
  onHoldChange?: (handoff: SeasonCheckoutHandoff | null) => void;
3981
4045
  onContinue?: (handoff: SeasonCheckoutHandoff) => void;
4046
+ onHoldExpired?: () => void;
3982
4047
  onRenewalIntent?: (intent: SeasonRenewalIntent) => void;
3983
4048
  onAccessExpired?: (event: BuyerAccessExpiredEvent) => void;
3984
4049
  onAccessUnavailable?: (event: BuyerAccessUnavailableEvent) => void;
@@ -4038,4 +4103,4 @@ interface AttachPickerFrameOptions {
4038
4103
  */
4039
4104
  declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
4040
4105
 
4041
- export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupAvailability, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, PerformanceGroupDestroyedError, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupRecoveryState, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type PerformanceGroupStatusEvent, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeasonApiError, type SeasonAvailability, type SeasonCheckoutHandoff, type SeasonDescriptor, type SeasonOperation, type SeasonOperationState, SeasonPicker, type SeasonPickerOptions, SeasonRecoveryTimeoutError, type SeasonRenewalIntent, type SeasonStatusEvent, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, type SeatPickerWebMcpOptions, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartSeatViewInfo, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, ThemeMode, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, shortOperationReference, ticketOfferPrices };
4106
+ export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupAvailability, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, PerformanceGroupDestroyedError, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupRecoveryState, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type PerformanceGroupStatusEvent, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeasonApiError, type SeasonAvailability, type SeasonCheckoutHandoff, type SeasonDescriptor, type SeasonOfferPresentation, type SeasonOperation, type SeasonOperationState, SeasonPicker, type SeasonPickerOptions, SeasonRecoveryTimeoutError, type SeasonRenewalIntent, type SeasonStatusEvent, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, type SeatPickerWebMcpOptions, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartSeatViewInfo, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, ThemeMode, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, shortOperationReference, ticketOfferPrices };