@seatlayer/core 0.69.0 → 0.71.1

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 (140) hide show
  1. package/dist/ar-R52D47QC.js +1 -0
  2. package/dist/be-P34NRZPF.js +1 -0
  3. package/dist/bg-4TEE6DSQ.js +1 -0
  4. package/dist/ca-V4A6DRPR.js +1 -0
  5. package/dist/{categoryInventory-DLDU-RSw.d.ts → categoryInventory-BiUDSvBt.d.ts} +1 -1
  6. package/dist/{categoryInventory-DZapeGK6.d.cts → categoryInventory-DBqgM5in.d.cts} +1 -1
  7. package/dist/{chunk-6JWYLLWU.js → chunk-5AHUGRHH.js} +1 -1
  8. package/dist/{chunk-RMNTGICO.js → chunk-652LV66L.js} +1 -1
  9. package/dist/{chunk-BV6FHURE.js → chunk-7OJ6SB6V.js} +1 -1
  10. package/dist/{chunk-HZT2U5IY.js → chunk-A27USMF7.js} +1 -1
  11. package/dist/{chunk-YYRUKI7A.js → chunk-AWPHGLTU.js} +1 -1
  12. package/dist/{chunk-WZ6ZNPNT.js → chunk-UHPX2P7O.js} +1 -1
  13. package/dist/{chunk-QYZ3P5L6.js → chunk-WXWJZ5DO.js} +1 -1
  14. package/dist/chunk-WYXHD6J2.js +1 -0
  15. package/dist/chunk-X3K36XZM.js +1 -0
  16. package/dist/core/chart-ops/index.cjs +1 -1
  17. package/dist/core/chart-ops/index.d.cts +4 -4
  18. package/dist/core/chart-ops/index.d.ts +4 -4
  19. package/dist/core/chart-ops/index.js +1 -1
  20. package/dist/core/inventory/index.d.cts +4 -4
  21. package/dist/core/inventory/index.d.ts +4 -4
  22. package/dist/core/inventory/index.js +1 -1
  23. package/dist/core/layout/index.cjs +1 -1
  24. package/dist/core/layout/index.d.cts +4 -4
  25. package/dist/core/layout/index.d.ts +4 -4
  26. package/dist/core/layout/index.js +1 -1
  27. package/dist/core/quality/index.d.cts +3 -3
  28. package/dist/core/quality/index.d.ts +3 -3
  29. package/dist/core/render-assets/index.d.cts +1 -1
  30. package/dist/core/render-assets/index.d.ts +1 -1
  31. package/dist/core/render-assets/index.js +1 -1
  32. package/dist/core/seatConfidence.d.cts +1 -1
  33. package/dist/core/seatConfidence.d.ts +1 -1
  34. package/dist/core/sections/index.d.cts +5 -5
  35. package/dist/core/sections/index.d.ts +5 -5
  36. package/dist/core/sections/index.js +1 -1
  37. package/dist/cs-GR5H3ZRU.js +1 -0
  38. package/dist/cy-XWYNMRNE.js +1 -0
  39. package/dist/da-NOYMEVP6.js +1 -0
  40. package/dist/de-LFHFC2XO.js +1 -0
  41. package/dist/el-AS3436E6.js +1 -0
  42. package/dist/es-IWBWYUHH.js +1 -0
  43. package/dist/et-VV7YGFEV.js +1 -0
  44. package/dist/{eventConfigurations-kZpADDdx.d.ts → eventConfigurations-CA2XhDig.d.ts} +1 -1
  45. package/dist/{eventConfigurations-C_dst7Ro.d.cts → eventConfigurations-Csdxe89O.d.cts} +1 -1
  46. package/dist/fa-JYLN4BIM.js +1 -0
  47. package/dist/fi-TXRN726I.js +1 -0
  48. package/dist/fr-PKEU6NKI.js +1 -0
  49. package/dist/he-H53ZPEAF.js +1 -0
  50. package/dist/hr-AIG6RMUY.js +1 -0
  51. package/dist/hu-KE64252D.js +1 -0
  52. package/dist/index.cjs +1 -1
  53. package/dist/index.d.cts +225 -102
  54. package/dist/index.d.ts +225 -102
  55. package/dist/index.js +1 -1
  56. package/dist/it-GVT7VIKV.js +1 -0
  57. package/dist/ja-WMRRUDVD.js +1 -0
  58. package/dist/ku-77V6NTW7.js +1 -0
  59. package/dist/{labeling-Br0U7E-5.d.ts → labeling-CxZWjZBN.d.ts} +1 -1
  60. package/dist/{labeling-B07AFOvn.d.cts → labeling-DG-Sc8VW.d.cts} +1 -1
  61. package/dist/{layout-D2zJUmzs.d.ts → layout-BxJIZjPm.d.cts} +19 -5
  62. package/dist/{layout-CpnMRaZF.d.cts → layout-C6YaCOnZ.d.ts} +19 -5
  63. package/dist/localeLoaders-EMBA3SWS.js +1 -0
  64. package/dist/lt-7ICKT4ED.js +1 -0
  65. package/dist/lv-NTO2456Y.js +1 -0
  66. package/dist/nl-IYEEWC4A.js +1 -0
  67. package/dist/no-CKH6R5N2.js +1 -0
  68. package/dist/pl-ALK57HKB.js +1 -0
  69. package/dist/pt-EYFSXBVZ.js +1 -0
  70. package/dist/{renderedQuality-TApmHr3Q.d.ts → renderedQuality-CWwy14lb.d.ts} +1 -1
  71. package/dist/{renderedQuality-sc_d2CfA.d.cts → renderedQuality-CgBQYezj.d.cts} +1 -1
  72. package/dist/{renderer-BiCXjFCG.d.ts → renderer-DIcDImOu.d.ts} +56 -1
  73. package/dist/{renderer-CXwpt_qs.d.cts → renderer-DmG3C8vD.d.cts} +56 -1
  74. package/dist/ro-EUFVCBVY.js +1 -0
  75. package/dist/ru-XAIYWENX.js +1 -0
  76. package/dist/{sections-DCRfHaw4.d.ts → sections-87qiciyN.d.ts} +1 -1
  77. package/dist/{sections-BjzyfqGZ.d.cts → sections-Bb0L9lDT.d.cts} +1 -1
  78. package/dist/{segmentedRowModel-jfYcGWPd.d.cts → segmentedRowModel-BqiM0U65.d.cts} +1 -1
  79. package/dist/{segmentedRowModel-DQggl3UO.d.ts → segmentedRowModel-CEP6crcl.d.ts} +1 -1
  80. package/dist/sk-QIOFO4TV.js +1 -0
  81. package/dist/sl-37I57K2X.js +1 -0
  82. package/dist/sr-HE5DILFD.js +1 -0
  83. package/dist/sv-7SVBFLY3.js +1 -0
  84. package/dist/{ticketRestrictions-BjEP4hnD.d.ts → ticketRestrictions-B_qXQobd.d.ts} +2 -2
  85. package/dist/{ticketRestrictions-ChYdOguf.d.cts → ticketRestrictions-Bj8PBX_x.d.cts} +2 -2
  86. package/dist/tr-JNA4YJEJ.js +1 -0
  87. package/dist/{types-BjTzKc2D.d.cts → types-DNztpn7q.d.cts} +9 -0
  88. package/dist/{types-BjTzKc2D.d.ts → types-DNztpn7q.d.ts} +9 -0
  89. package/dist/uk-2723G7DI.js +1 -0
  90. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  91. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  92. package/dist/view3d/index.cjs +31 -31
  93. package/dist/view3d/index.d.cts +86 -4
  94. package/dist/view3d/index.d.ts +86 -4
  95. package/dist/view3d/index.js +29 -29
  96. package/dist/view3d/scene/scene.worker.cjs +1 -0
  97. package/dist/view3d/scene/scene.worker.d.cts +2 -0
  98. package/dist/view3d/scene/scene.worker.d.ts +2 -0
  99. package/dist/view3d/scene/scene.worker.js +1 -0
  100. package/dist/zh-Hans-ONBXTDHV.js +1 -0
  101. package/dist/zh-Hant-LVTMHA6P.js +1 -0
  102. package/package.json +1 -1
  103. package/dist/ar-QWMSVFMH.js +0 -1
  104. package/dist/be-3GMEVW5Q.js +0 -1
  105. package/dist/bg-W46PKTS7.js +0 -1
  106. package/dist/ca-FS3NR6VL.js +0 -1
  107. package/dist/chunk-I6DNJFRF.js +0 -1
  108. package/dist/cs-I4AKSFRV.js +0 -1
  109. package/dist/cy-ABRR65RX.js +0 -1
  110. package/dist/da-HNKK3PNG.js +0 -1
  111. package/dist/de-QUOPPJF7.js +0 -1
  112. package/dist/el-DUXSH2LY.js +0 -1
  113. package/dist/es-57EA3CTI.js +0 -1
  114. package/dist/et-RBSHG6OS.js +0 -1
  115. package/dist/fa-MJIJUBSS.js +0 -1
  116. package/dist/fi-HKF3AVOV.js +0 -1
  117. package/dist/fr-4U5K5VNS.js +0 -1
  118. package/dist/he-MIVDM6KS.js +0 -1
  119. package/dist/hr-G7RZP6DQ.js +0 -1
  120. package/dist/hu-QZE26B6N.js +0 -1
  121. package/dist/it-L2XL6VR7.js +0 -1
  122. package/dist/ja-Q64SRIIE.js +0 -1
  123. package/dist/ku-OG466MA5.js +0 -1
  124. package/dist/localeLoaders-V5HTIO2J.js +0 -1
  125. package/dist/lt-P2CZWZZL.js +0 -1
  126. package/dist/lv-IRHTS7ME.js +0 -1
  127. package/dist/nl-6WSAK5IB.js +0 -1
  128. package/dist/no-3G67YZZR.js +0 -1
  129. package/dist/pl-DUYWY7BZ.js +0 -1
  130. package/dist/pt-FNIRQMIZ.js +0 -1
  131. package/dist/ro-BBYEYZIK.js +0 -1
  132. package/dist/ru-NMG7W5QE.js +0 -1
  133. package/dist/sk-HI2H44DR.js +0 -1
  134. package/dist/sl-RBLBICUL.js +0 -1
  135. package/dist/sr-SNARC3RS.js +0 -1
  136. package/dist/sv-R7ZWBQIL.js +0 -1
  137. package/dist/tr-2JJXM4IM.js +0 -1
  138. package/dist/uk-GTBKSNLF.js +0 -1
  139. package/dist/zh-Hans-4V7ZG3GP.js +0 -1
  140. package/dist/zh-Hant-XWV277CF.js +0 -1
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { C as ChartDoc, P as Point, A as AccessibilityType, m as CategoryTier, g as SeatCommercialAttributes } from './types-BjTzKc2D.js';
2
- export { v as ACCESSIBILITY_RING_COLOR, w as ACCESSIBILITY_TYPES, x as AccessibilityMeta, y as AuthoringObjectState, B as BoothObject, o as Category, z as ChartLayoutConstraint, d as ChartObject, n as ChartReferenceImage, D as ChartTheme, E as ConfidenceEvidenceScope, t as CubicPath, H as DecorImageObject, F as Floor, G as GAAreaObject, l as GAInventorySegment, I as LABEL_STYLE_MAX_SIZE, J as LABEL_STYLE_MIN_SIZE, K as LabelPresentation, L as LabelStyle, O as ObjectEditorState, M as Physical3dEvidence, N as RadialClearanceLayoutConstraint, f as RectTableSeatCounts, c as RectTableSide, Q as ReferenceAccessibilitySource, U as ReferenceCalibration, V as ReferenceCategorySource, W as ReferenceDerivedScale, X as ReferenceEnrichmentStatus, Y as ReferenceExtractEmptyReason, Z as ReferenceExtractEnrichment, _ as ReferenceExtractInput, $ as ReferenceExtractProposal, a0 as ReferenceExtractRegionSeats, a1 as ReferenceInventoryExclusionSource, a2 as ReferenceInventorySource, a3 as ReferenceMatchReport, a4 as ReferenceScanProposal, a5 as ReferenceScanRowProposal, a6 as ReferenceScanSectionProposal, a7 as ReferenceSeatSeed, a8 as ReferenceSectionTraceBatchInput, a9 as ReferenceSectionTraceBatchProposal, aa as ReferenceSectionTraceInput, ab as ReferenceSectionTraceProposal, h as ResolvedSeatConfidenceEvidence, R as RowObject, ac as SEAT_COMMERCIAL_MARKS, ad as SURROUNDINGS_SHAPE_ROLES, ae as SeatCommercialMark, af as SeatCommercialMeta, ag as SeatConfidenceCoverage, ah as SeatConfidenceEvidence, ai as SeatConfidenceModelLevel, aj as SeatConfidenceModeledTarget, ak as SeatConfidenceRealityLevel, a as SeatGlyphKind, S as SeatOverride, i as SeatViewCoverage, b as SeatViewMetadata, al as SeatViewVariant, e as SectionObject, j as SectionOutlinePath, k as SectionPathSegment, am as SelectionLayer, p as ShapeLineCap, q as ShapeLineEnding, r as ShapeLineJoin, s as ShapeObject, T as TableObject, an as TextAlignment, ao as TextBackground, u as TextObject, ap as TicketTierApplicability, aq as TicketTierEvidence, ar as TicketTierRestriction, as as Venue3DMaterialPalette, at as VenueSurveyRegistrationEvidence, au as ZoneDef, av as accessibilityMeta, aw as accessibilityRingColor, ax as layerOf, ay as seatCommercialMeta } from './types-BjTzKc2D.js';
3
- import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-kZpADDdx.js';
4
- export { b as EVENT_CONFIGURATION_EXPORT_SCHEMA, c as EVENT_CONFIGURATION_SCHEMA, d as EventConfigurationBaseVenue, e as EventConfigurationCompatibilityIssue, f as EventConfigurationCompatibilityIssueCode, g as EventConfigurationCompatibilityResult, h as EventConfigurationExportEnvelope, i as EventConfigurationLifecycleStatus, j as EventConfigurationOcclusion, k as EventConfigurationOverlay, l as EventConfigurationParseIssue, m as EventConfigurationParseIssueCode, n as EventConfigurationParseResult, o as EventConfigurationProductionElement, p as EventConfigurationProductionElementKind, q as EventConfigurationVenueSnapshot, r as EventConfigurationVersionParseResult, s as EventConfigurationVersionSummary, L as LegacyEventConfigurationMigrationResult, t as canTransitionEventConfiguration, u as canonicalEventConfigurationJson, v as inspectEventConfigurationCompatibility, w as migrateLegacyEventConfigurations, x as parseEventConfigurationExport, y as parseEventConfigurationVersion, z as resolveEventConfigurationRollback } from './eventConfigurations-kZpADDdx.js';
5
- export { E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from './layout-D2zJUmzs.js';
6
- import { c as TicketSelectionIssue } from './ticketRestrictions-BjEP4hnD.js';
7
- export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-BjEP4hnD.js';
8
- export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-DCRfHaw4.js';
9
- export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-TApmHr3Q.js';
10
- import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, c as SeatMark, E as ExpandedSeat, G as GAAreaState, d as RendererViewMode, e as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, f as RendererCallbacks } from './renderer-BiCXjFCG.js';
11
- export { C as CHART_STORAGE_KEY, g as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, h as RenderedGAAreaEvidence, i as RenderedHierarchyLabelEvidence, j as RenderedLabelHiddenReason, k as RenderedRowLabelEvidence, l as RendererHoverDetails, m as RendererMinimapSeat, n as RendererMinimapSection, o as SeatMarkKind } from './renderer-BiCXjFCG.js';
12
- import './segmentedRowModel-DQggl3UO.js';
1
+ import { C as ChartDoc, P as Point, A as AccessibilityType, m as CategoryTier, g as SeatCommercialAttributes } from './types-DNztpn7q.js';
2
+ export { v as ACCESSIBILITY_RING_COLOR, w as ACCESSIBILITY_TYPES, x as AccessibilityMeta, y as AuthoringObjectState, B as BoothObject, o as Category, z as ChartLayoutConstraint, d as ChartObject, n as ChartReferenceImage, D as ChartTheme, E as ConfidenceEvidenceScope, t as CubicPath, H as DecorImageObject, F as Floor, G as GAAreaObject, l as GAInventorySegment, I as LABEL_STYLE_MAX_SIZE, J as LABEL_STYLE_MIN_SIZE, K as LabelPresentation, L as LabelStyle, O as ObjectEditorState, M as Physical3dEvidence, N as RadialClearanceLayoutConstraint, f as RectTableSeatCounts, c as RectTableSide, Q as ReferenceAccessibilitySource, U as ReferenceCalibration, V as ReferenceCategorySource, W as ReferenceDerivedScale, X as ReferenceEnrichmentStatus, Y as ReferenceExtractEmptyReason, Z as ReferenceExtractEnrichment, _ as ReferenceExtractInput, $ as ReferenceExtractProposal, a0 as ReferenceExtractRegionSeats, a1 as ReferenceInventoryExclusionSource, a2 as ReferenceInventorySource, a3 as ReferenceMatchReport, a4 as ReferenceScanProposal, a5 as ReferenceScanRowProposal, a6 as ReferenceScanSectionProposal, a7 as ReferenceSeatSeed, a8 as ReferenceSectionTraceBatchInput, a9 as ReferenceSectionTraceBatchProposal, aa as ReferenceSectionTraceInput, ab as ReferenceSectionTraceProposal, h as ResolvedSeatConfidenceEvidence, R as RowObject, ac as SEAT_COMMERCIAL_MARKS, ad as SURROUNDINGS_SHAPE_ROLES, ae as SeatCommercialMark, af as SeatCommercialMeta, ag as SeatConfidenceCoverage, ah as SeatConfidenceEvidence, ai as SeatConfidenceModelLevel, aj as SeatConfidenceModeledTarget, ak as SeatConfidenceRealityLevel, a as SeatGlyphKind, S as SeatOverride, i as SeatViewCoverage, b as SeatViewMetadata, al as SeatViewVariant, e as SectionObject, j as SectionOutlinePath, k as SectionPathSegment, am as SelectionLayer, p as ShapeLineCap, q as ShapeLineEnding, r as ShapeLineJoin, s as ShapeObject, T as TableObject, an as TextAlignment, ao as TextBackground, u as TextObject, ap as TicketTierApplicability, aq as TicketTierEvidence, ar as TicketTierRestriction, as as Venue3DMaterialPalette, at as VenueSurveyRegistrationEvidence, au as ZoneDef, av as accessibilityMeta, aw as accessibilityRingColor, ax as layerOf, ay as seatCommercialMeta } from './types-DNztpn7q.js';
3
+ import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-CA2XhDig.js';
4
+ export { b as EVENT_CONFIGURATION_EXPORT_SCHEMA, c as EVENT_CONFIGURATION_SCHEMA, d as EventConfigurationBaseVenue, e as EventConfigurationCompatibilityIssue, f as EventConfigurationCompatibilityIssueCode, g as EventConfigurationCompatibilityResult, h as EventConfigurationExportEnvelope, i as EventConfigurationLifecycleStatus, j as EventConfigurationOcclusion, k as EventConfigurationOverlay, l as EventConfigurationParseIssue, m as EventConfigurationParseIssueCode, n as EventConfigurationParseResult, o as EventConfigurationProductionElement, p as EventConfigurationProductionElementKind, q as EventConfigurationVenueSnapshot, r as EventConfigurationVersionParseResult, s as EventConfigurationVersionSummary, L as LegacyEventConfigurationMigrationResult, t as canTransitionEventConfiguration, u as canonicalEventConfigurationJson, v as inspectEventConfigurationCompatibility, w as migrateLegacyEventConfigurations, x as parseEventConfigurationExport, y as parseEventConfigurationVersion, z as resolveEventConfigurationRollback } from './eventConfigurations-CA2XhDig.js';
5
+ export { C as ChartBoundsOptions, E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from './layout-C6YaCOnZ.js';
6
+ import { c as TicketSelectionIssue } from './ticketRestrictions-B_qXQobd.js';
7
+ export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-B_qXQobd.js';
8
+ export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-87qiciyN.js';
9
+ export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-CWwy14lb.js';
10
+ import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, c as SeatMark, E as ExpandedSeat, G as GAAreaState, d as RendererViewMode, e as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, f as RendererCallbacks } from './renderer-DIcDImOu.js';
11
+ export { C as CHART_STORAGE_KEY, g as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, h as RenderedGAAreaEvidence, i as RenderedHierarchyLabelEvidence, j as RenderedLabelHiddenReason, k as RenderedRowLabelEvidence, l as RendererHoverDetails, m as RendererMinimapSeat, n as RendererMinimapSection, o as SeatMarkKind } from './renderer-DIcDImOu.js';
12
+ import './segmentedRowModel-CEP6crcl.js';
13
13
 
14
14
  declare class SeatmapRenderer implements ISeatmapRenderer {
15
15
  private container;
@@ -85,10 +85,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
85
85
  private selection;
86
86
  /** Seat-contained selection markers: outline + non-colour check cue. */
87
87
  private selectionMarkers;
88
- /** At most one live pulse ring per seata double-tap replaces, never stacks. */
89
- private seatPulses;
90
- /** The touch loupe's nodes and the seat they are currently reporting on. */
91
- private loupe;
88
+ /** Selection markers, the pick moment and the touch loupe see seatMoments. */
89
+ private momentsCache;
90
+ /** Overview marks for the sections the buyer holds seats in see ownedSections. */
91
+ private ownedCache;
92
92
  /** Held by this picker instance, not by another buyer. */
93
93
  private ownedHold;
94
94
  private seatMarks;
@@ -114,6 +114,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
114
114
  private commercialLimitedFilter;
115
115
  private sections;
116
116
  private zones;
117
+ /** World boxes of the fixed landmarks hierarchy chips must not sit on. */
118
+ private landmarkBoxes;
117
119
  private seatSection;
118
120
  /** Seats outside every authored section retain the legacy path in one group. */
119
121
  private unsectionedSeatGroup;
@@ -129,6 +131,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
129
131
  private closedSections;
130
132
  /** AXS section-focus: the currently-focused section id (others dim), or null. */
131
133
  private focusedSectionId;
134
+ /** Tap point the focus was entered on (replayed on a resize refit), and
135
+ * whether a manual pan has since put the locator on the buyer's camera. */
136
+ private focusAnchor;
137
+ private focusRoams;
132
138
  /** Light backdrop panel drawn behind the focused section (removed on clear). */
133
139
  private focusBackdrop;
134
140
  /** Non-listening visual dim outside the focused section. One overlay replaces
@@ -180,6 +186,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
180
186
  private reducedMotion;
181
187
  private readonly cameraGlideMs;
182
188
  private fitScale;
189
+ /** Stage pose the last overview fit landed on — see zoomToFit. */
190
+ private fitPose;
183
191
  /** Effective seat radius (base × theme.seatScale), set per chart in setChart. */
184
192
  private seatR;
185
193
  private bounds;
@@ -190,10 +198,40 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
190
198
  private assetPromises;
191
199
  private assetErrors;
192
200
  private assetCancels;
201
+ /**
202
+ * Progressive reveal: what a big chart does instead of appearing all at once.
203
+ *
204
+ * Section shells paint with the chart doc; the seats then build a section at
205
+ * a time in idle slices, nearest the viewport first. Non-null only while that
206
+ * is in flight — every path that needs a complete scene right now (an export,
207
+ * a chart replacement, teardown) finishes or cancels it first.
208
+ */
209
+ private seatReveal;
210
+ /**
211
+ * True from the moment `setChart` decides to defer the seats until the last
212
+ * one has landed — which starts BEFORE `seatReveal` exists, because the
213
+ * schedule is only created after the fit, and the fit itself runs the LOD
214
+ * pass that would otherwise bake an empty seat layer into the overview.
215
+ */
216
+ private seatRevealPending;
217
+ /** Below this the whole scene is cheap enough to build in one step. */
218
+ private readonly progressiveSeatFloor;
219
+ private readonly loadingReveal;
220
+ /** Host callback for the moment the last section's seats finish arriving. */
221
+ private readonly onSeatsRevealed;
193
222
  private rafId;
194
- private frames;
195
- private lastFpsAt;
196
223
  private recacheTimer;
224
+ /**
225
+ * True between `setChart()` and the first overview bake of that chart.
226
+ *
227
+ * `setChart` → `zoomToFit` → `updateLOD` reaches the bake BEFORE the host has
228
+ * applied inventory; the picker then applies statuses and calls `forceDraw()`
229
+ * in the same task, throwing that bitmap away and building it again. Two full
230
+ * rasterizations of one chart for one paint — 19ms where 10 will do at 760
231
+ * seats. So the mount bake waits a tick: `forceDraw()` flushes it, and a host
232
+ * that never calls it bakes on the next tick instead.
233
+ */
234
+ private mountCachePending;
197
235
  private resizeObs;
198
236
  /** Coalesces bursty view-change sources (pointermove, wheel) into ≤1 callback/frame. */
199
237
  private viewChangeRaf;
@@ -208,6 +246,21 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
208
246
  private get moved();
209
247
  private isGhostClick;
210
248
  /** Behavioural surface the gesture machine calls back into. */
249
+ /**
250
+ * The overlay-layer moments (marker, pop/pulse, loupe). Built once and kept:
251
+ * a pointermove drives the loupe, and allocating a host per frame would be
252
+ * paid for on exactly the device that can least afford it.
253
+ */
254
+ private get moments();
255
+ /** The buyer's seats, still visible once the seats have melted into blocks. */
256
+ private get owned();
257
+ /**
258
+ * Where a tap on this section should land the camera: on the buyer's own
259
+ * seats when they have some in there, otherwise on the point they touched.
260
+ */
261
+ private sectionTapAnchor;
262
+ /** World points of the seats in this section the buyer has taken or holds. */
263
+ private ownedSeatPoints;
211
264
  private get pointerHost();
212
265
  /**
213
266
  * Manage-mode rubber-band marquee (option-gated). `start`/`cur` are WORLD-space
@@ -220,6 +273,36 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
220
273
  setChart(doc: ChartDoc, opts?: {
221
274
  floorId?: string;
222
275
  }): void;
276
+ /**
277
+ * Should this chart's seats arrive a section at a time?
278
+ *
279
+ * Only when there are enough of them to be worth it, the host asked for it,
280
+ * and the scene is one a buyer will look at. An export renders once to a
281
+ * file: a reveal there would either be captured half-built or have to be
282
+ * finished synchronously anyway, which is the plain path with extra steps.
283
+ */
284
+ private seatRevealWanted;
285
+ /**
286
+ * Build the seats a section at a time, nearest the buyer first.
287
+ *
288
+ * Every seat's STATUS is already in `statusById` (setChart seeds it, and the
289
+ * controller's inventory apply writes it whether or not a node exists yet),
290
+ * and node construction paints from it — so a section built late arrives with
291
+ * the right colours and never needs a second pass. That is the whole reason
292
+ * inventory can land during the build without re-rasterizing anything.
293
+ */
294
+ private startSeatReveal;
295
+ /** Centre of what the buyer can currently see, in chart coordinates. */
296
+ private viewportCentreInChartSpace;
297
+ /**
298
+ * Complete an in-flight reveal NOW, synchronously.
299
+ *
300
+ * Anything that reads or replaces the whole scene — a chart swap, an export,
301
+ * quality evidence, teardown — must see every seat. The reveal is a way of
302
+ * spreading construction over time, never a scene that is allowed to stay
303
+ * incomplete.
304
+ */
305
+ private cancelSeatReveal;
223
306
  /** The chart to render: authored-coordinate overview, stacked 3D overview,
224
307
  * the active floor, or the whole chart for single-floor charts. */
225
308
  private floorView;
@@ -293,13 +376,15 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
293
376
  * fire `onMarquee`. A near-zero drag reads as a click: clear the selection.
294
377
  */
295
378
  private finishMarquee;
379
+ /** Throw a ring off one seat — "this is the one" without moving the camera. */
296
380
  flashSeat(seatId: string, color?: string): void;
297
381
  /**
298
382
  * Pulse a section outline without moving the camera or mutating the authored
299
- * geometry. The temporary halo is drawn in the non-listening overlay layer,
300
- * so the apparent 4% lift never changes hit testing or selection bounds.
383
+ * geometry. The halo lives in the non-listening overlay layer, so its
384
+ * apparent 4% lift never changes hit testing or selection bounds.
301
385
  */
302
386
  flashSection(sectionId: string, color?: string): void;
387
+ private get flashHost();
303
388
  private onKeyDown;
304
389
  /** Nearest seat from `fromId` in a cardinal direction (aligned + close wins). */
305
390
  private nearestSeat;
@@ -404,6 +489,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
404
489
  /** Restore section-owned containers before applying another projection. */
405
490
  private resetSectionProjection;
406
491
  /** Node/cache context the shared seat-anchor pass reads and updates. */
492
+ /** Cached, unlike its siblings, because it holds only stable references and
493
+ * no camera reading that could go stale; setChart (which reassigns `seats`)
494
+ * drops it. It is also the hot one — `updateSeatGroupVisibility` builds it
495
+ * per visible section on every pointermove of a perspective pan. */
496
+ private seatAnchorContextCache;
407
497
  private get seatAnchorContext();
408
498
  /** Move native seat/booth hit shapes to or from their exact pinhole anchors. */
409
499
  private applyExactSeatAnchors;
@@ -435,11 +525,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
435
525
  private seatContainer;
436
526
  /** True when a section belongs to the active logical section/zone focus. */
437
527
  private sectionMatchesFocus;
438
- /** Visual opacity after the section-focus overlay is composed. */
528
+ /**
529
+ * Visual opacity after the section-focus overlay is composed.
530
+ *
531
+ * Gated on the dim ACTUALLY BEING ON SCREEN, not merely on a focus existing.
532
+ * releaseSectionFocusDim drops the overlay on the buyer's first pan — free
533
+ * roaming across sections is the product behaviour, the glide is only an
534
+ * entrance — and reporting a stale 0.16 after that told the label pass that
535
+ * every neighbouring seat was invisible. Pan from a focused Stalls F to
536
+ * Grand Circle and its seats lost their numbers (owner report 2026-08-27),
537
+ * at a zoom where they were fully bright on screen.
538
+ */
439
539
  private focusedSeatOpacity;
440
- /** Project a section outline through elevation + the active affine view and
441
- * then into viewport pixels. The result is conservative (AABB), so a visible
442
- * section is never clipped even for rotated or isometric outlines. */
443
540
  private sectionScreenBounds;
444
541
  /** Hide only section groups wholly outside a padded viewport at the live-seat
445
542
  * rung. Overview caching always restores all groups first, so panning a
@@ -459,9 +556,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
459
556
  * the small transient set aligned explicitly. Selection is capped in buyer
460
557
  * mode, making this constant-sized work during the iso tween. */
461
558
  private syncSeatOverlayPositions;
559
+ /** Build every seat + booth node — see render/seatScene.ts. */
462
560
  private renderSeats;
463
- /** A booth renders as a click-selectable rounded block (dims from the doc). */
464
- private renderBoothUnit;
465
561
  /**
466
562
  * Build the centred accessibility glyph for a seat. Sized relative to the seat
467
563
  * radius (so it always fills the marker at any zoom) and given a contrast-aware
@@ -547,13 +643,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
547
643
  * strategy, not a visual state — never use it to route a tap.
548
644
  */
549
645
  seatsRevealed(): boolean;
550
- /** Draw (or replace) the light backdrop panel behind the focused section. */
646
+ /**
647
+ * Draw (or replace) the focus treatment: the light backdrop panel behind the
648
+ * focused section, and the dim that pushes the rest of the venue back.
649
+ */
551
650
  private drawFocusBackdrop;
552
- /** Dim everything outside the active section with one paint-only shape. Group
553
- * opacity would make Konva recursively invalidate absolute-opacity caches on
554
- * all 14k descendants. The cut-out follows the live elevation offset and is
555
- * non-listening, so direct seat hit-testing is unchanged. */
556
- private drawFocusDimOverlay;
651
+ private get focusBackdropHost();
557
652
  /** Repaint every seat + section block to reflect closed/focus state, then redraw. */
558
653
  private repaintSectionsAndSeats;
559
654
  /** The world-space rectangle currently visible in the viewport (minimap F3). */
@@ -622,12 +717,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
622
717
  * sale: a block with no price keeps the neutral treatment.
623
718
  */
624
719
  private dominantSellableColor;
625
- private get sectionLodPaintContext();
626
720
  /**
627
- * Zone rung: one giant screen-constant label per zone (+ optional "FROM $n"),
628
- * shown at the farthest zoom in place of per-section detail. Skipped entirely
629
- * when the doc declares no zones sections then stay the far rung (graceful).
721
+ * Free seats in this section that satisfy the active accessibility filter.
722
+ *
723
+ * The count, not a boolean, because the block rung has two jobs for it: mark
724
+ * the sections that have anything at all, and tell the buyer how much. Zero
725
+ * when no filter is on — nothing at that rung asks the question then, and
726
+ * walking every section's members on every paint to answer an unasked
727
+ * question is exactly the per-frame cost this rung exists to avoid.
630
728
  */
729
+ private sectionAccessibleFree;
730
+ private get sectionLodPaintContext();
731
+ /** Build the zone pills (name + FROM price) — see render/zoneScene.ts. */
631
732
  private renderZones;
632
733
  /**
633
734
  * Map a container-relative screen point back to world coords. Inverts the
@@ -643,6 +744,20 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
643
744
  /** Seat ids belonging to a section (Slice 5 section-summary card). */
644
745
  sectionMembers(id: string): string[];
645
746
  private isSelectable;
747
+ /**
748
+ * Is this seat out of the sale purely because the accessibility filter is on?
749
+ *
750
+ * The filter used to be paint only: non-matching seats dimmed to 25% and were
751
+ * still selectable, so a buyer who turned on "wheelchair-accessible seats"
752
+ * could — and did — pick a faded ordinary seat and never learn why the map
753
+ * looked odd. A filter that does not filter is a lie about the inventory.
754
+ *
755
+ * Kept separate from {@link isSelectable} because the answer is also the
756
+ * REASON: everything downstream (the tap explanation, the toast, best-seats)
757
+ * needs to distinguish "sold" from "you filtered this out", which is
758
+ * reversible by one tap.
759
+ */
760
+ private hiddenByAccessFilter;
646
761
  private toggleSeat;
647
762
  /**
648
763
  * Selection/hover ring color. An explicit theme.selectionColor always wins;
@@ -656,45 +771,16 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
656
771
  private resolveCanvasBackground;
657
772
  private resolveSelectionColor;
658
773
  private setSelected;
659
- /** Rebuild one marker after selected/held/candidate state changes. */
774
+ /** Rebuild one seat's marker after selected/held/candidate state changes. */
660
775
  private syncSelectionMarker;
661
- /**
662
- * Fade a marker whose seat is no longer the buyer's, then destroy it. Reduced
663
- * motion (and a hidden tab, where rAF never runs) drops it immediately —
664
- * a node kept alive by an animation that will never tick is a leak.
665
- */
666
- private retireSelectionMarker;
667
- /**
668
- * The pick moment: the seat marker pops, and a ring in the seat's own
669
- * category colour expands out of it and fades. Fired only for the buyer's
670
- * own tap — a bulk/marquee select would otherwise spawn one animation per
671
- * seat, and a programmatic selection has no finger to answer.
672
- *
673
- * Reduced motion skips both; the persistent halo (which is the part that
674
- * carries information) is drawn by syncSelectionMarker either way.
675
- */
776
+ /** The buyer's own pick: pop the marker and throw a pulse ring out of it. */
676
777
  private playSeatPickMoment;
677
- /**
678
- * THE FINGER IS ON TOP OF THE SEAT. A fingertip covers roughly 45 screen
679
- * pixels of a map whose seats are 24, so at the moment of picking, the buyer
680
- * cannot see the thing they are picking — including whether it is the seat
681
- * they meant. While a single finger is held down over a seat, a lens floats
682
- * ~70px above it carrying that seat's colour, name and price.
683
- *
684
- * Touch only: nothing occludes a mouse or a pen. Tap semantics are untouched
685
- * — selection still happens on release, through the same handlers.
686
- */
778
+ /** A finger is on a seat — lift it out from under the fingertip, and back. */
687
779
  private showTouchLoupe;
688
- /** Build the lens once and keep it — a press is not the time to allocate. */
689
- private buildTouchLoupe;
690
- /** Put the lens away — pointer up, cancel, or the press turning into a pan. */
691
780
  private hideTouchLoupe;
692
781
  /**
693
- * The stage scale `focusRegion(id)` would settle ati.e. the zoom that
694
- * frames this section in the current viewport. Used to decide whether
695
- * redirecting a seat tap to section-focus would actually zoom in FURTHER, or
696
- * whether the section already fills the viewport (small container) so the tap
697
- * must fall through and pick.
782
+ * The world rect that frames one whole section outline, member seats,
783
+ * annotations, icons and placed row labels. See sectionCameraBounds.
698
784
  */
699
785
  private sectionBounds;
700
786
  private sectionFrameScale;
@@ -709,22 +795,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
709
795
  * fall through and PICK. This is the invariant: seats are never unpickable.
710
796
  */
711
797
  private handleSeatTap;
712
- /**
713
- * Nearest SELECTABLE seat whose centre is within `slopPx` (screen space) of a
714
- * seat circle edge, or null. Enlarges the effective tap target for small seats
715
- * so a near-miss on mobile still lands on the intended seat, without ever
716
- * hijacking a clean tap on empty space beyond the slop.
717
- */
798
+ /** Deck under the pointer in the 3D stacked overview — see screenPicking. */
799
+ private deckFloorAt;
800
+ /** Nearest selectable seat within `slopPx` of a screen point, or null. */
718
801
  private nearestSeatToScreen;
802
+ private get screenPickingHost();
719
803
  private wireInteraction;
720
- /**
721
- * Which deck (floor) a screen tap landed on in the 3D stacked overview. The
722
- * seat layer is melt-cached at that zoom so individual seat nodes aren't
723
- * hit-testable; instead we invert the iso+stage transform via the layer's
724
- * relative pointer and take the nearest seat's floor. Only the floor matters,
725
- * so within-floor elevation offsets don't affect the result. Null if none.
726
- */
727
- private deckFloorAt;
728
804
  /**
729
805
  * Min is chart-relative (never lose the room); max is absolute so seats
730
806
  * reach a readable size on any chart, however large the venue.
@@ -771,6 +847,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
771
847
  private seatLabelTargetScale;
772
848
  /** Recompute LOD (cache/labels) after any pan/zoom settles. */
773
849
  private afterViewChange;
850
+ /**
851
+ * A camera move has FINISHED: drop any onViewChange scheduled from a frame
852
+ * the camera was merely passing through, and schedule exactly one from the
853
+ * settled state. Without it a backdrop tap (clearSectionFocus + zoomToFit)
854
+ * left the widget's deep state on the pre-settle reading — the map back at
855
+ * the overview, the chrome still saying the buyer was inside a section.
856
+ */
857
+ private settleView;
858
+ /** Once the buyer is roaming, the locator names what is ON SCREEN rather than
859
+ * what they tapped — WITHOUT moving the camera. Retargeting is a
860
+ * relabelling; a glide here would fight the pan that caused it. */
861
+ private retargetRoamingFocus;
774
862
  /** rAF-coalesced `onViewChange` — at most one host callback per animation frame. */
775
863
  private scheduleViewChange;
776
864
  /** Keep focal labels centred while their world font size tracks camera scale. */
@@ -780,21 +868,7 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
780
868
  * debounced cacheSeatLayer() and the synchronous forceDraw() catch-up. */
781
869
  private rebuildSeatCache;
782
870
  private cacheSeatLayer;
783
- /**
784
- * Drop the seat-layer overview bitmap while PRESERVING every descendant's
785
- * cached local transform + clientRect.
786
- *
787
- * Konva's public `Layer.clearCache()` releases the bitmap and then runs a deep
788
- * `_clearSelfAndDescendantCache()` that clears those caches on all 14k seat
789
- * nodes. Recomputing them on the single frame the melt first reveals a section's
790
- * live seats is the ~480ms first-drill stall (OV-80). A camera glide only marks
791
- * each seat's ABSOLUTE_TRANSFORM dirty (recomputed lazily at ordinary pan cost)
792
- * and never moves a seat's LOCAL transform, so the local caches stay valid —
793
- * keeping them lets the first melt paint at pan cost, matching the ~17ms of
794
- * every subsequent glide on the same section. Any edit that actually moves a
795
- * seat invalidates its own transform cache through the attr setter, so only
796
- * still-valid caches survive here.
797
- */
871
+ /** See `render/seatLayerBitmap.releaseLayerBitmap` — NOT `clearCache()`. */
798
872
  private releaseSeatLayerBitmap;
799
873
  /**
800
874
  * SYNCHRONOUS repaint that bypasses requestAnimationFrame — see the
@@ -839,7 +913,6 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
839
913
  private updateLabels;
840
914
  private get viewportLabelContext();
841
915
  private handleResize;
842
- private startFpsLoop;
843
916
  }
844
917
  declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;
845
918
 
@@ -919,6 +992,15 @@ interface SeatHoverDetails extends PickerSeat {
919
992
  mark?: SeatMark | null;
920
993
  /** A deliberate press pins interactive details; hover remains preview-only. */
921
994
  interaction?: 'hover' | 'press';
995
+ /**
996
+ * The press landed on a seat that cannot be taken (held by another buyer,
997
+ * sold, not for sale, filtered out). Touch has no hover, so this is how a
998
+ * finger gets the explanation a mouse gets for free.
999
+ */
1000
+ unavailable?: boolean;
1001
+ /** Unavailable ONLY because the buyer's accessibility filter is on — one tap
1002
+ * from being takeable again, so the host prompts rather than refuses. */
1003
+ filteredOut?: boolean;
922
1004
  }
923
1005
  interface PickerGAArea {
924
1006
  id: string;
@@ -985,6 +1067,12 @@ interface SectionSummary {
985
1067
  color: string;
986
1068
  /** Free member seats right now. */
987
1069
  seatsLeft: number;
1070
+ /**
1071
+ * Free member seats matching the buyer's accessibility filter. Present ONLY
1072
+ * while a filter is on — a card that always said "0 accessible" would report
1073
+ * the filter's absence as an absence of provision.
1074
+ */
1075
+ accessibleLeft?: number;
988
1076
  priceMin: number;
989
1077
  priceMax: number;
990
1078
  /** Per-category breakdown, cheapest first. */
@@ -1218,6 +1306,15 @@ interface PickerOptions extends PickerCallbacks {
1218
1306
  flashOnLiveChange?: boolean;
1219
1307
  /** Start in colorblind-safe rendering (Okabe-Ito hues + hollow booked seats). */
1220
1308
  colorblindSafe?: boolean;
1309
+ /**
1310
+ * How a big chart's seats arrive: 'progressive' (default) shows the venue's
1311
+ * sections as soon as the chart doc lands and fills the seats in a section at
1312
+ * a time, nearest the viewport first; 'plain' builds the whole scene in one
1313
+ * step, as every chart used to.
1314
+ */
1315
+ loadingReveal?: 'progressive' | 'plain';
1316
+ /** Every seat of a progressively revealed chart is now on screen. */
1317
+ onSeatsRevealed?: () => void;
1221
1318
  /**
1222
1319
  * Keep painting seat-status deltas even while the tab is hidden/backgrounded.
1223
1320
  *
@@ -1271,6 +1368,19 @@ interface PickerRenderPerformanceProfile {
1271
1368
  firstPaint: number;
1272
1369
  startRealtime: number;
1273
1370
  controllerTotal: number;
1371
+ /** Buyer chrome up with the loading skeleton in the map host. Widget-owned. */
1372
+ skeletonPaint?: number;
1373
+ /** Section shells on screen — the first frame that shows the actual venue. */
1374
+ shellsPaint?: number;
1375
+ /**
1376
+ * Every seat on screen, measured from the same start as the rest.
1377
+ *
1378
+ * Filled in AFTER `render()` resolves, on the profile object it returned:
1379
+ * a progressive reveal is by definition still finishing when the chart is
1380
+ * usable, and pretending otherwise would be the number this whole change
1381
+ * exists to stop reporting.
1382
+ */
1383
+ seatsComplete?: number;
1274
1384
  }
1275
1385
  /**
1276
1386
  * The subset of `ChartTheme` a HOST may override on the drawn canvas.
@@ -1609,7 +1719,19 @@ declare class PickerController {
1609
1719
  y: number;
1610
1720
  };
1611
1721
  setSelectionFocus(seatId: string | null): void;
1722
+ /**
1723
+ * The buyer's accessibility filter, remembered here as well as pushed at the
1724
+ * renderer.
1725
+ *
1726
+ * The renderer owns the paint; the controller owns everything the paint is
1727
+ * not — the section summaries the dock bar reads, best-available, and the
1728
+ * host's own queries. Keeping a copy is what lets those answer the filter
1729
+ * without reaching into the canvas for it.
1730
+ */
1731
+ private accessFilter;
1612
1732
  setAccessibilityFilter(types: string[] | null): void;
1733
+ /** The buyer's active accessibility filter, or null. */
1734
+ getAccessibilityFilter(): AccessibilityType[] | null;
1613
1735
  /**
1614
1736
  * "Hide limited-view seats" toggle — dims free seats flagged
1615
1737
  * restricted/obstructed view. Additive commercial parallel to the
@@ -1699,8 +1821,9 @@ declare class PickerController {
1699
1821
  * closed section is framed but never opens a buyer card. */
1700
1822
  private handleSectionTap;
1701
1823
  /**
1702
- * Build a section summary from the renderer's spatial membership: section +
1703
- * zone labels, live seats-left, price range, and the per-category breakdown.
1824
+ * Build a section summary from the renderer's spatial membership. The
1825
+ * derivation itself lives in pickerSectionSummary.ts it reads nothing this
1826
+ * object owns beyond four values, and this file is at its size cap.
1704
1827
  */
1705
1828
  private sectionSummary;
1706
1829
  destroy(): void;