@seatlayer/core 0.50.2 → 0.52.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.
Files changed (40) hide show
  1. package/dist/{chunk-GD267BFB.js → chunk-UID7KN44.js} +75 -2
  2. package/dist/chunk-UID7KN44.js.map +1 -0
  3. package/dist/core/seatConfidence.d.cts +1 -1
  4. package/dist/core/seatConfidence.d.ts +1 -1
  5. package/dist/de-YGODYJ3E.js +292 -0
  6. package/dist/de-YGODYJ3E.js.map +1 -0
  7. package/dist/es-VMBTGVFQ.js +292 -0
  8. package/dist/es-VMBTGVFQ.js.map +1 -0
  9. package/dist/fr-SLBE2ULB.js +292 -0
  10. package/dist/fr-SLBE2ULB.js.map +1 -0
  11. package/dist/index.cjs +1606 -64
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.cts +138 -17
  14. package/dist/index.d.ts +138 -17
  15. package/dist/index.js +829 -65
  16. package/dist/index.js.map +1 -1
  17. package/dist/picker/minimapGeometry.cjs +80 -0
  18. package/dist/picker/minimapGeometry.cjs.map +1 -0
  19. package/dist/picker/minimapGeometry.d.cts +37 -0
  20. package/dist/picker/minimapGeometry.d.ts +37 -0
  21. package/dist/picker/minimapGeometry.js +52 -0
  22. package/dist/picker/minimapGeometry.js.map +1 -0
  23. package/dist/{types-DR54nqKL.d.cts → types-tLOunI-B.d.cts} +131 -1
  24. package/dist/{types-DR54nqKL.d.ts → types-tLOunI-B.d.ts} +131 -1
  25. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  26. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  27. package/dist/view3d/index.cjs +1158 -123
  28. package/dist/view3d/index.cjs.map +1 -1
  29. package/dist/view3d/index.d.cts +20 -12
  30. package/dist/view3d/index.d.ts +20 -12
  31. package/dist/view3d/index.js +1158 -122
  32. package/dist/view3d/index.js.map +1 -1
  33. package/package.json +14 -1
  34. package/dist/chunk-GD267BFB.js.map +0 -1
  35. package/dist/de-ST4H423D.js +0 -56
  36. package/dist/de-ST4H423D.js.map +0 -1
  37. package/dist/es-WEC5NHRT.js +0 -56
  38. package/dist/es-WEC5NHRT.js.map +0 -1
  39. package/dist/fr-SGBFNAQV.js +0 -56
  40. package/dist/fr-SGBFNAQV.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as RowObject, A as AccessibilityType, S as SeatOverride, b as SeatViewMetadata, L as LabelStyle, c as RectTableSide, C as ChartDoc, d as ChartObject, B as BoothObject, E as ExpandedSeat, T as TableObject, F as Floor, P as Point, e as SectionObject, f as RectTableSeatCounts, G as GAAreaObject, g as GAInventorySegment, h as RendererQualityEvidence, i as RenderedFreeTextEvidence, I as ISeatmapRenderer, j as RendererOptions, k as SeatStatus, l as RendererViewMode, m as LodRung, n as CategoryTier, o as SeatCommercialAttributes, p as RendererCallbacks } from './types-DR54nqKL.js';
2
- export { q as ACCESSIBILITY_RING_COLOR, r as ACCESSIBILITY_TYPES, s as AccessibilityMeta, t as AuthoringObjectState, u as CHART_STORAGE_KEY, v as Category, w as ChartReferenceImage, x as ChartTheme, y as CubicPath, D as DecorImageObject, z as LABEL_STYLE_MAX_SIZE, H as LABEL_STYLE_MIN_SIZE, J as LabelPresentation, O as ObjectEditorState, K as ReferenceAccessibilitySource, M as ReferenceCalibration, N as ReferenceCategorySource, Q as ReferenceDerivedScale, U as ReferenceInventoryExclusionSource, V as ReferenceInventorySource, W as ReferenceScanProposal, X as ReferenceScanRowProposal, Y as ReferenceScanSectionProposal, Z as ReferenceSeatSeed, _ as ReferenceSectionTraceBatchInput, $ as ReferenceSectionTraceBatchProposal, a0 as ReferenceSectionTraceInput, a1 as ReferenceSectionTraceProposal, a2 as RenderedBookableLabelEvidence, a3 as RenderedGAAreaEvidence, a4 as RenderedHierarchyLabelEvidence, a5 as RenderedLabelHiddenReason, R as ResolvedSeatConfidenceEvidence, a6 as SEAT_COMMERCIAL_MARKS, a7 as SURROUNDINGS_SHAPE_ROLES, a8 as SeatCommercialMark, a9 as SeatCommercialMeta, aa as SeatConfidenceCoverage, ab as SeatConfidenceEvidence, ac as SeatConfidenceModelLevel, ad as SeatConfidenceModeledTarget, ae as SeatConfidenceRealityLevel, af as SeatViewCoverage, ag as SectionOutlinePath, ah as SectionPathSegment, ai as SelectionLayer, aj as ShapeLineCap, ak as ShapeLineEnding, al as ShapeLineJoin, am as ShapeObject, an as TextAlignment, ao as TextBackground, ap as TextObject, aq as ZoneDef, ar as accessibilityMeta, as as accessibilityRingColor, at as layerOf, au as seatCommercialMeta } from './types-DR54nqKL.js';
1
+ import { a as RowObject, A as AccessibilityType, S as SeatOverride, b as SeatViewMetadata, L as LabelStyle, c as RectTableSide, C as ChartDoc, d as ChartObject, B as BoothObject, E as ExpandedSeat, T as TableObject, P as Point, F as Floor, e as SectionObject, f as RectTableSeatCounts, G as GAAreaObject, g as GAInventorySegment, h as RendererQualityEvidence, i as RenderedFreeTextEvidence, I as ISeatmapRenderer, j as RendererOptions, k as SeatStatus, l as RendererViewMode, m as RendererMinimapSnapshot, n as LodRung, o as CategoryTier, p as SeatCommercialAttributes, q as RendererCallbacks } from './types-tLOunI-B.js';
2
+ export { r as ACCESSIBILITY_RING_COLOR, s as ACCESSIBILITY_TYPES, t as AccessibilityMeta, u as AuthoringObjectState, v as CHART_STORAGE_KEY, w as Category, x as ChartLayoutConstraint, y as ChartReferenceImage, z as ChartTheme, D as CubicPath, H as DecorImageObject, J as LABEL_STYLE_MAX_SIZE, K as LABEL_STYLE_MIN_SIZE, M as LabelPresentation, O as ObjectEditorState, N as Physical3dEvidence, Q as RadialClearanceLayoutConstraint, U as ReferenceAccessibilitySource, V as ReferenceCalibration, W as ReferenceCategorySource, X as ReferenceDerivedScale, Y as ReferenceInventoryExclusionSource, Z as ReferenceInventorySource, _ as ReferenceScanProposal, $ as ReferenceScanRowProposal, a0 as ReferenceScanSectionProposal, a1 as ReferenceSeatSeed, a2 as ReferenceSectionTraceBatchInput, a3 as ReferenceSectionTraceBatchProposal, a4 as ReferenceSectionTraceInput, a5 as ReferenceSectionTraceProposal, a6 as RenderedBookableLabelEvidence, a7 as RenderedGAAreaEvidence, a8 as RenderedHierarchyLabelEvidence, a9 as RenderedLabelHiddenReason, aa as RenderedRowLabelEvidence, ab as RendererMinimapSeat, ac as RendererMinimapSection, R as ResolvedSeatConfidenceEvidence, ad as SEAT_COMMERCIAL_MARKS, ae as SURROUNDINGS_SHAPE_ROLES, af as SeatCommercialMark, ag as SeatCommercialMeta, ah as SeatConfidenceCoverage, ai as SeatConfidenceEvidence, aj as SeatConfidenceModelLevel, ak as SeatConfidenceModeledTarget, al as SeatConfidenceRealityLevel, am as SeatViewCoverage, an as SectionOutlinePath, ao as SectionPathSegment, ap as SelectionLayer, aq as ShapeLineCap, ar as ShapeLineEnding, as as ShapeLineJoin, at as ShapeObject, au as TextAlignment, av as TextBackground, aw as TextObject, ax as TicketTierApplicability, ay as TicketTierEvidence, az as TicketTierRestriction, aA as ZoneDef, aB as accessibilityMeta, aC as accessibilityRingColor, aD as layerOf, aE as seatCommercialMeta } from './types-tLOunI-B.js';
3
3
 
4
4
  /**
5
5
  * The segmented-row model — one logical row made of several physical rows.
@@ -165,6 +165,8 @@ declare function floorsOf(doc: ChartDoc): Floor[];
165
165
  declare function floorObjects(doc: ChartDoc, floorId?: string): ChartObject[];
166
166
  /** Every object across ALL floors — the whole venue (single-floor = `doc.objects`). */
167
167
  declare function allObjects(doc: ChartDoc): ChartObject[];
168
+ /** A copy of an object translated by (dx, dy) — every coordinate field shifted. */
169
+ declare function translateObject(o: ChartObject, dx: number, dy: number): ChartObject;
168
170
  /**
169
171
  * Multi-floor 3D stack (Batch 5): flatten every floor into ONE doc with floor `i`
170
172
  * lifted by `i * spread` in −y, so the isometric view shows the floors as stacked
@@ -172,6 +174,26 @@ declare function allObjects(doc: ChartDoc): ChartObject[];
172
174
  * only for the 3D overview render — 2D still shows one floor via `floorObjects`.
173
175
  */
174
176
  declare function stackFloors(doc: ChartDoc, spread?: number): ChartDoc;
177
+ /**
178
+ * Build the buyer-facing 2D overview of a multi-floor chart.
179
+ *
180
+ * Floors commonly reuse the same drawing origin (a balcony is authored over
181
+ * the stalls it overlooks). Flattening those source coordinates makes a valid
182
+ * import look corrupt because every level is painted on top of every other
183
+ * level. This projection packs complete floors into a compact, content-aware
184
+ * grid. Each floor receives one rigid translation: no seat, row, section,
185
+ * annotation, gap, or rotation changes, and the canonical document is never
186
+ * mutated.
187
+ */
188
+ declare function layoutFloorOverview(doc: ChartDoc): ChartDoc;
189
+ /**
190
+ * Rigid per-floor translations used by the buyer's complete-venue overview.
191
+ *
192
+ * Kept as a pure public helper so 2D and 3D can present the same non-overlapping
193
+ * level arrangement without either renderer rewriting the authored chart. A
194
+ * zero translation is returned for a single-floor document.
195
+ */
196
+ declare function floorOverviewTranslations(doc: ChartDoc): Point[];
175
197
  interface ExpandChartOptions {
176
198
  /** Physical height for a single-floor projection extracted from a multi-floor
177
199
  * document. Full multi-floor documents resolve each floor directly. */
@@ -437,16 +459,6 @@ interface RenderedQualityReport {
437
459
  */
438
460
  declare function inspectRenderedQualityEvidence(evidence: RendererQualityEvidence, state?: RenderedEvidenceState, targetCategoryKey?: string | null): RenderedQualityReport;
439
461
 
440
- /**
441
- * SeatmapRenderer — the shared canvas rendering core (buyer picker shell).
442
- *
443
- * Uses Konva directly with per-module imports to keep the bundle lean. The
444
- * whole point of the spike is staying smooth at ~5,000 seats on mobile, so the
445
- * hot paths lean on: layer bitmap caching + listening(false) when zoomed out,
446
- * per-seat fill updates (never full rebuilds) on status change, and viewport-
447
- * only label rendering rebuilt on interaction-end rather than per frame.
448
- */
449
-
450
462
  declare class SeatmapRenderer implements ISeatmapRenderer {
451
463
  private container;
452
464
  private opts;
@@ -472,6 +484,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
472
484
  private activeFloorId;
473
485
  /** When true on a multi-floor chart, render ALL floors stacked (3D overview). */
474
486
  private stacked;
487
+ /** Buyer-facing 2D overview: floors are rigidly arranged without altering topology. */
488
+ private floorOverview;
475
489
  /** Interactive node per seat/booth — a Circle for seats, a Rect for booths. */
476
490
  private circleById;
477
491
  /** Booth block geometry, keyed by booth id (= the unit's rowId). */
@@ -661,8 +675,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
661
675
  setChart(doc: ChartDoc, opts?: {
662
676
  floorId?: string;
663
677
  }): void;
664
- /** The chart to render: all floors stacked (3D overview), the active floor, or
665
- * the whole chart for single-floor charts. */
678
+ /** The chart to render: authored-coordinate overview, stacked 3D overview,
679
+ * the active floor, or the whole chart for single-floor charts. */
666
680
  private floorView;
667
681
  /** Physical floor height is authored data; the 900-unit stacked overview
668
682
  * spread is presentation-only and must never leak into real 3D geometry. */
@@ -671,6 +685,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
671
685
  * single-floor charts. The caller re-applies statuses + animates the iso view. */
672
686
  setStacked(on: boolean): void;
673
687
  isStacked(): boolean;
688
+ /** Toggle the buyer's combined 2D floor overview. Every floor is translated
689
+ * as one rigid group for clarity; its authored internal topology is exact. */
690
+ setFloorOverview(on: boolean): void;
691
+ isFloorOverview(): boolean;
674
692
  /** Switch which floor is shown (2D). Re-renders + re-fits; no-op if unchanged. */
675
693
  setActiveFloor(floorId: string): void;
676
694
  /** Floors for the host's switcher (single-floor charts return one synthetic floor). */
@@ -740,6 +758,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
740
758
  /** Pan/zoom so a seat sits on-screen at a legible scale (for keyboard focus). */
741
759
  private ensureVisible;
742
760
  zoomToFit(): void;
761
+ /**
762
+ * Reframe after a host/layout resize without throwing away section context.
763
+ * The stage already represents the usable map area (the picker side panel is
764
+ * a sibling), so measuring it here naturally respects open/closed panels.
765
+ */
766
+ refitCurrentView(): void;
743
767
  /** Step factor for the on-screen +/− buttons (B1) — same clamp path as pinch/wheel. */
744
768
  private static readonly ZOOM_STEP;
745
769
  zoomIn(): void;
@@ -929,10 +953,20 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
929
953
  setClosedSections(ids: string[] | null): void;
930
954
  /**
931
955
  * AXS section-focus: dim + desaturate every other section, draw a calm backdrop
932
- * panel behind this section's seats, and glide the camera in to frame it (the
933
- * seat-pick gate below only lets buyers pick once seats are LABEL_SCALE big).
956
+ * panel behind this section's seats, and glide the camera to a padded fit of
957
+ * the whole section. A large section may therefore use smaller seat markers,
958
+ * but it never clips its outer rows merely to meet a fixed detail scale.
934
959
  */
935
960
  focusSection(id: string): void;
961
+ /**
962
+ * Release only the focus dim + backdrop, keeping the focused-section state
963
+ * (summary card, adjacent-section navigation, LOD) intact. Called on the
964
+ * buyer's first manual pan/pinch/wheel after a section glide: the dim reads
965
+ * as "everything else is disabled", but every seat outside the focus was
966
+ * always hit-testable — free roaming across sections is the product
967
+ * behaviour, the glide is only an entrance.
968
+ */
969
+ private releaseSectionFocusDim;
936
970
  /** Clear an AXS section focus — restore full-bowl brightness + drop the backdrop. */
937
971
  clearSectionFocus(): void;
938
972
  /** The currently AXS-focused section id, or null. */
@@ -960,6 +994,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
960
994
  width: number;
961
995
  height: number;
962
996
  };
997
+ /** Live minimap geometry comes from the rendered scene, so a content-aware
998
+ * all-floor layout cannot collapse back onto the source coordinate stack. */
999
+ getMinimapSnapshot(): RendererMinimapSnapshot;
1000
+ /** Minimap drag/click navigation: preserve zoom and move one world point to
1001
+ * the viewport centre. Works for flat and projected views via worldToScreen. */
1002
+ panToWorld(point: Point): void;
963
1003
  /** Legend hover: highlight one category (dim the rest), or null to clear. */
964
1004
  setCategoryHighlight(key: string | null): void;
965
1005
  private renderBackground;
@@ -1044,6 +1084,13 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1044
1084
  private sizeLabel;
1045
1085
  /** Fit one centred section name, rotating narrow shells like the target chart. */
1046
1086
  private fitSectionRungLabels;
1087
+ /**
1088
+ * Screen-constant chrome must still respect the screen it is constant on:
1089
+ * an 18px zone cap sized for a 900px designer canvas eats a 360px phone map
1090
+ * (owner report, 2026-08-14). Scales the fixed-px chrome down to 66% on the
1091
+ * smallest containers; never up.
1092
+ */
1093
+ private uiScale;
1047
1094
  /** Size one screen-constant zone name/price pill around its shared anchor. */
1048
1095
  private sizeZonePill;
1049
1096
  /**
@@ -1210,6 +1257,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1210
1257
  */
1211
1258
  captureCanvas(): HTMLCanvasElement;
1212
1259
  private updateFreeTextVisibility;
1260
+ /** Geometric association only: importer data remains unchanged. */
1261
+ private nodeBelongsToFocusedSection;
1213
1262
  /** OV-45(a): resolve authored row-letter labels for the buyer/preview map, in
1214
1263
  * world space, matching the Designer's placement contract (start/end/both/none
1215
1264
  * preset, a free-drag `position` that wins over the preset, rotation, and
@@ -1235,6 +1284,23 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1235
1284
  }
1236
1285
  declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;
1237
1286
 
1287
+ interface CompanionSelectionIssue {
1288
+ code: 'companion_pair_required';
1289
+ labels: string[];
1290
+ message: string;
1291
+ }
1292
+ interface TicketOptionApplicabilityIssue {
1293
+ code: 'ticket_option_not_applicable';
1294
+ labels: string[];
1295
+ message: string;
1296
+ }
1297
+ interface NotForSaleSelectionIssue {
1298
+ code: 'not_for_sale';
1299
+ labels: string[];
1300
+ message: string;
1301
+ }
1302
+ type TicketSelectionIssue = CompanionSelectionIssue | TicketOptionApplicabilityIssue | NotForSaleSelectionIssue;
1303
+
1238
1304
  interface PickerSeat {
1239
1305
  id: string;
1240
1306
  label: string;
@@ -1254,6 +1320,8 @@ interface PickerSeat {
1254
1320
  categoryKey: string;
1255
1321
  /** Price for the chosen tier when the category has tiers, else the base price. */
1256
1322
  price: number;
1323
+ /** ISO-4217 event currency carried with SDK selection callbacks. */
1324
+ currency: string;
1257
1325
  /** Ticket tiers the seat's category offers (Adult/Child/…); absent when none. */
1258
1326
  tiers?: CategoryTier[];
1259
1327
  /** The chosen tier's id — defaults to the first tier; absent when no tiers. */
@@ -1315,6 +1383,14 @@ interface HoldConflict {
1315
1383
  label: string;
1316
1384
  status: string;
1317
1385
  }
1386
+ /** A locally detected selection-rule failure. Its public shape mirrors API
1387
+ * problems so SDK hosts can handle client and server enforcement identically. */
1388
+ declare class PickerSelectionError extends Error {
1389
+ readonly status = 422;
1390
+ readonly reason: TicketSelectionIssue['code'];
1391
+ readonly labels: string[];
1392
+ constructor(issue: TicketSelectionIssue);
1393
+ }
1318
1394
  /** An open hold — its id, the labels it covers, and the server's expiry time (ms epoch). */
1319
1395
  interface HoldInfo {
1320
1396
  holdId: string;
@@ -1330,7 +1406,11 @@ interface SectionCategory {
1330
1406
  key: string;
1331
1407
  label: string;
1332
1408
  color: string;
1409
+ /** Cheapest ticket choice in this category. `price` remains this value for
1410
+ * source compatibility with existing SDK hosts. */
1333
1411
  price: number;
1412
+ priceMin: number;
1413
+ priceMax: number;
1334
1414
  count: number;
1335
1415
  }
1336
1416
  /**
@@ -1561,6 +1641,20 @@ interface PickerOptions extends PickerCallbacks {
1561
1641
  */
1562
1642
  mapTheme?: PickerMapTheme | null;
1563
1643
  }
1644
+ /** Privacy-safe timings for one buyer-map load. Values are milliseconds and
1645
+ * contain no chart, seat, hold, buyer, or URL data. Hosts may aggregate these
1646
+ * with coarse chart-size/device dimensions supplied by the widget. */
1647
+ interface PickerRenderPerformanceProfile {
1648
+ loadChart: number;
1649
+ normalizeBuyerModel: number;
1650
+ createRenderer: number;
1651
+ loadStatuses: number;
1652
+ buildScene: number;
1653
+ applyInitialState: number;
1654
+ firstPaint: number;
1655
+ startRealtime: number;
1656
+ controllerTotal: number;
1657
+ }
1564
1658
  /**
1565
1659
  * The subset of `ChartTheme` a HOST may override on the drawn canvas.
1566
1660
  *
@@ -1722,6 +1816,7 @@ declare class PickerController {
1722
1816
  mode?: string;
1723
1817
  /** Absolute event-poster URL, when the server can publicly serve one. */
1724
1818
  posterUrl?: string | null;
1819
+ performanceProfile: PickerRenderPerformanceProfile;
1725
1820
  } | null>;
1726
1821
  getSelection(): PickerSeat[];
1727
1822
  /** Enriched metadata for a seat confirmation card or tooltip. */
@@ -1832,10 +1927,14 @@ declare class PickerController {
1832
1927
  private releaseConfirmed;
1833
1928
  setStatus(ids: string[], status: SeatStatus): void;
1834
1929
  getStatus(id: string): SeatStatus | undefined;
1930
+ /** Seat ids whose category the author marked not-for-sale. */
1931
+ private notForSaleCategorySeatIds;
1835
1932
  flashSeat(id: string, color?: string): void;
1836
1933
  zoomIn(): void;
1837
1934
  zoomOut(): void;
1838
1935
  zoomToFit(): void;
1936
+ /** Preserve section focus while the usable map viewport changes. */
1937
+ refitCurrentView(): void;
1839
1938
  worldToScreen(p: {
1840
1939
  x: number;
1841
1940
  y: number;
@@ -1863,6 +1962,9 @@ declare class PickerController {
1863
1962
  /** 3D all-floors stacked overview ⇄ active floor. Re-applies statuses after. */
1864
1963
  setStacked(on: boolean): void;
1865
1964
  isMultiFloor(): boolean;
1965
+ /** Enter/leave the source-coordinate all-floor buyer overview. */
1966
+ setFloorOverview(on: boolean): void;
1967
+ isFloorOverview(): boolean;
1866
1968
  /** Tap-a-deck-to-enter: leave the 3D stack, drop to flat 2D on `floorId`, and
1867
1969
  * tell the host so it can sync its 2D/3D toggle + floor-switcher state. */
1868
1970
  private handleDeckTap;
@@ -1900,8 +2002,20 @@ declare class PickerController {
1900
2002
  height: number;
1901
2003
  };
1902
2004
  } | null;
2005
+ getMinimapSnapshot(): RendererMinimapSnapshot;
2006
+ panToWorld(point: {
2007
+ x: number;
2008
+ y: number;
2009
+ }): void;
2010
+ /** Leave section-focus dimming without changing the current zoom. Used when
2011
+ * the minimap viewport itself is dragged to a different part of the venue. */
2012
+ clearSectionFocus(): void;
2013
+ /** Read-only browser-render evidence for parity/performance audit tooling. */
2014
+ getRenderedQualityEvidence(): RendererQualityEvidence | null;
1903
2015
  /** Glide in on a section and surface its summary (same path as a section tap). */
1904
2016
  focusSection(id: string): void;
2017
+ /** Live seat membership count used by buyer section-navigation controls. */
2018
+ getSectionSeatCount(id: string): number;
1905
2019
  /** Zoom back out to the whole chart and clear the section-summary card + focus. */
1906
2020
  overview(): void;
1907
2021
  /** Glide the camera into a tapped section and emit its computed summary. Uses
@@ -1920,6 +2034,10 @@ declare class PickerController {
1920
2034
  private describeSeat;
1921
2035
  private priceFor;
1922
2036
  private tiersFor;
2037
+ private tiersForSeat;
2038
+ private seatTierResolution;
2039
+ private tableTierSeat;
2040
+ private tableTierResolution;
1923
2041
  /**
1924
2042
  * Choose a ticket tier for a selected seat (e.g. Adult → Child). Re-emits the
1925
2043
  * selection so the host's cart + the eventual hold carry the new tier + price.
@@ -1930,6 +2048,9 @@ declare class PickerController {
1930
2048
  /** PickerSeats (with chosen tier) for a set of held labels. */
1931
2049
  private seatsForLabels;
1932
2050
  private emitSelectionChange;
2051
+ /** Check explicit tier applicability and companion relationships for the
2052
+ * current (or supplied) seats. Ticket display names are never semantic input. */
2053
+ ticketIssue(labels?: string[]): TicketSelectionIssue | null;
1933
2054
  /** Whether the last emitted hint was non-null (avoids clearing repeatedly). */
1934
2055
  private hintShown;
1935
2056
  /**
@@ -2164,4 +2285,4 @@ declare function formatMinor(minor: number, currency?: string): string;
2164
2285
  /** Bare symbol for input adornments ("€", "$", "₹"). */
2165
2286
  declare function currencySymbol(currency?: string): string;
2166
2287
 
2167
- export { AccessibilityType, type AvailabilityRule, BoothObject, CURRENCY_CHOICES, CategoryTier, ChartDoc, ChartObject, DEFAULT_CURRENCY, type Dict, type ExpandChartOptions, ExpandedSeat, Floor, GAAreaObject, GAInventorySegment, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LabelStyle, type Locale, LodRung, MAX_EVENT_INVENTORY, MAX_GA_CAPACITY, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerSeat, type PickerStatusChange, type PickerTransport, Point, RENDERED_QUALITY_REPORT_VERSION, RectTableSeatCounts, RectTableSide, type RenderedEvidenceState, RenderedFreeTextEvidence, type RenderedQualityFinding, type RenderedQualityFindingCode, type RenderedQualityReport, type RenderedQualitySample, RendererCallbacks, RendererOptions, RendererQualityEvidence, RendererViewMode, RowObject, type RowSeatSlot, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatOverride, SeatStatus, SeatViewMetadata, SeatmapRenderer, type SectionCategory, type SectionNode, SectionObject, type SectionSummary, TIER_HEIGHT_M, TableObject, type TableSeatSlot, type TableSelectionDetails, UNGROUPED_ID, allObjects, applyHidden, chartBounds, computeSections, createRenderer, currencyExponent, currencySymbol, expandBooth, expandChart, expandRow, expandRowSlots, expandTable, expandTableSlots, floorObjects, floorsOf, formatDate, formatMinor, formatMoney, fromMinorUnits, gaAreasOf, gaInventorySegments, gaUnitLabel, gaUnitLabels, generateSeatPanorama, generateSeatThumb, getLocale, growJoinedGAInventory, hiddenObjectIds, inspectRenderedQualityEvidence, isGaUnitLabel, isSectionHidden, loadLocale, objectCenter, owningSectionForObject, pointInPolygon, pointInPolygonWithHoles, polygonLabelPoint, resolveLocale, rowInventoryCount, rowSeatPositions, sectionGeometry, setLocale, setMoneyLocale, setStringOverrides, stackFloors, t, tCount, tableInventoryCount, tableSeatCountsBySide, validGAInventorySegments };
2288
+ export { AccessibilityType, type AvailabilityRule, BoothObject, CURRENCY_CHOICES, CategoryTier, ChartDoc, ChartObject, DEFAULT_CURRENCY, type Dict, type ExpandChartOptions, ExpandedSeat, Floor, GAAreaObject, GAInventorySegment, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LabelStyle, type Locale, LodRung, MAX_EVENT_INVENTORY, MAX_GA_CAPACITY, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerStatusChange, type PickerTransport, Point, RENDERED_QUALITY_REPORT_VERSION, RectTableSeatCounts, RectTableSide, type RenderedEvidenceState, RenderedFreeTextEvidence, type RenderedQualityFinding, type RenderedQualityFindingCode, type RenderedQualityReport, type RenderedQualitySample, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, RowObject, type RowSeatSlot, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatOverride, SeatStatus, SeatViewMetadata, SeatmapRenderer, type SectionCategory, type SectionNode, SectionObject, type SectionSummary, TIER_HEIGHT_M, TableObject, type TableSeatSlot, type TableSelectionDetails, UNGROUPED_ID, allObjects, applyHidden, chartBounds, computeSections, createRenderer, currencyExponent, currencySymbol, expandBooth, expandChart, expandRow, expandRowSlots, expandTable, expandTableSlots, floorObjects, floorOverviewTranslations, floorsOf, formatDate, formatMinor, formatMoney, fromMinorUnits, gaAreasOf, gaInventorySegments, gaUnitLabel, gaUnitLabels, generateSeatPanorama, generateSeatThumb, getLocale, growJoinedGAInventory, hiddenObjectIds, inspectRenderedQualityEvidence, isGaUnitLabel, isSectionHidden, layoutFloorOverview, loadLocale, objectCenter, owningSectionForObject, pointInPolygon, pointInPolygonWithHoles, polygonLabelPoint, resolveLocale, rowInventoryCount, rowSeatPositions, sectionGeometry, setLocale, setMoneyLocale, setStringOverrides, stackFloors, t, tCount, tableInventoryCount, tableSeatCountsBySide, translateObject, validGAInventorySegments };