@seatlayer/core 0.75.1 → 0.76.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 (70) hide show
  1. package/dist/{categoryInventory-DFp26meo.d.cts → categoryInventory-CBuJy9KM.d.cts} +1 -1
  2. package/dist/{categoryInventory-C5I2U-EM.d.ts → categoryInventory-Cy5pQ0KW.d.ts} +1 -1
  3. package/dist/chunk-24O23MNB.js +1 -0
  4. package/dist/chunk-BT2KJXQC.js +1 -0
  5. package/dist/{chunk-3L4M7L5I.js → chunk-BXU5D2Q5.js} +1 -1
  6. package/dist/chunk-FGMGDTMR.js +1 -0
  7. package/dist/{chunk-KHFCTR3V.js → chunk-JQL77POQ.js} +1 -1
  8. package/dist/{chunk-UVAV3E7K.js → chunk-NQZAZFAC.js} +1 -1
  9. package/dist/{chunk-OGIAQX62.js → chunk-O5UH442K.js} +1 -1
  10. package/dist/{chunk-TN6DFYEV.js → chunk-PRED5KHO.js} +1 -1
  11. package/dist/{chunk-N3DPHRJ3.js → chunk-Q3U3F4YJ.js} +1 -1
  12. package/dist/{chunk-YACNGDTE.js → chunk-WXGW2SYC.js} +1 -1
  13. package/dist/{chunk-FMZ6HLDH.js → chunk-XD2P4ZS4.js} +1 -1
  14. package/dist/core/chart-ops/index.cjs +1 -1
  15. package/dist/core/chart-ops/index.d.cts +7 -5
  16. package/dist/core/chart-ops/index.d.ts +7 -5
  17. package/dist/core/chart-ops/index.js +1 -1
  18. package/dist/core/inventory/index.cjs +1 -1
  19. package/dist/core/inventory/index.d.cts +4 -4
  20. package/dist/core/inventory/index.d.ts +4 -4
  21. package/dist/core/inventory/index.js +1 -1
  22. package/dist/core/layout/index.cjs +1 -1
  23. package/dist/core/layout/index.d.cts +5 -5
  24. package/dist/core/layout/index.d.ts +5 -5
  25. package/dist/core/layout/index.js +1 -1
  26. package/dist/core/quality/index.cjs +1 -1
  27. package/dist/core/quality/index.d.cts +18 -14
  28. package/dist/core/quality/index.d.ts +18 -14
  29. package/dist/core/quality/index.js +1 -1
  30. package/dist/core/render-assets/index.d.cts +1 -1
  31. package/dist/core/render-assets/index.d.ts +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.cjs +1 -1
  35. package/dist/core/sections/index.d.cts +5 -5
  36. package/dist/core/sections/index.d.ts +5 -5
  37. package/dist/core/sections/index.js +1 -1
  38. package/dist/{eventConfigurations-DAaOaKJK.d.cts → eventConfigurations-CqfrYWAb.d.cts} +1 -1
  39. package/dist/{eventConfigurations-BQGuLLv0.d.ts → eventConfigurations-Dhauc9V3.d.ts} +1 -1
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.d.cts +61 -18
  42. package/dist/index.d.ts +61 -18
  43. package/dist/index.js +1 -1
  44. package/dist/{labeling-BZp91HiS.d.cts → labeling-B1xsmowB.d.cts} +1 -1
  45. package/dist/{labeling-Duul2sao.d.ts → labeling-BwPEI5JN.d.ts} +1 -1
  46. package/dist/{renderedQuality-CEPse8ir.d.cts → renderedQuality-1E9KuJvY.d.cts} +1 -1
  47. package/dist/{renderedQuality-BYhJ3Cer.d.ts → renderedQuality-ChAZNV2N.d.ts} +1 -1
  48. package/dist/{renderer-Cv_gzYvT.d.cts → renderer-BRmVrITG.d.cts} +1 -1
  49. package/dist/{renderer-BlLKrW-U.d.ts → renderer-q7viZLGZ.d.ts} +1 -1
  50. package/dist/{sections-DIVvr8QN.d.ts → sections-ByTMouG8.d.ts} +1 -1
  51. package/dist/{sections-CRSGPI3T.d.cts → sections-CA-bBex5.d.cts} +1 -1
  52. package/dist/{segmentedRowModel-CvyOS6Bx.d.cts → segmentedRowModel-C7XOEjHk.d.cts} +1 -1
  53. package/dist/{segmentedRowModel-CD-YT9bT.d.ts → segmentedRowModel-DcvJVKLD.d.ts} +1 -1
  54. package/dist/{layout-Gkx3fo5_.d.cts → tableSizing-BdCyNeqX.d.cts} +14 -4
  55. package/dist/{layout-DGbWo5fV.d.ts → tableSizing-D8e8QAJ-.d.ts} +14 -4
  56. package/dist/{ticketRestrictions-C31mrE97.d.cts → ticketRestrictions-CPZglNvw.d.cts} +2 -2
  57. package/dist/{ticketRestrictions-DXO2eckD.d.ts → ticketRestrictions-CorjMY49.d.ts} +2 -2
  58. package/dist/{types-BVRza86Q.d.ts → types-CqaNLbU6.d.cts} +10 -4
  59. package/dist/{types-BVRza86Q.d.cts → types-CqaNLbU6.d.ts} +10 -4
  60. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  61. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  62. package/dist/view3d/index.cjs +6 -6
  63. package/dist/view3d/index.d.cts +3 -3
  64. package/dist/view3d/index.d.ts +3 -3
  65. package/dist/view3d/index.js +1 -1
  66. package/dist/view3d/scene/scene.worker.cjs +1 -1
  67. package/dist/view3d/scene/scene.worker.js +1 -1
  68. package/package.json +1 -1
  69. package/dist/chunk-QUOAQQMP.js +0 -1
  70. package/dist/chunk-X2GZ5O7C.js +0 -1
package/dist/index.d.cts CHANGED
@@ -1,15 +1,15 @@
1
- import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-BVRza86Q.cjs';
2
- export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, l as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, k as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, j as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, m as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-BVRza86Q.cjs';
3
- import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-DAaOaKJK.cjs';
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-DAaOaKJK.cjs';
5
- export { C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, a as FLOOR_STACK_MIN_SURFACE_PX, b as FloorStackOptions, c as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, d as TableSeatSlot, e as allObjects, f as chartBounds, g as expandBooth, h as expandChart, i as expandRow, j as expandRowSlots, k as expandTable, l as expandTableSlots, m as floorObjects, n as floorStackPlacements, o as floorsOf, p as initialFloorMode, q as layoutFloorStack, r as mainFloorId, s as objectCenter, t as owningSectionForObject, u as pointInPolygon, v as pointInPolygonWithHoles, w as polygonLabelPoint, x as rowInventoryCount, y as rowSeatPositions, z as stackFloors, A as tableInventoryCount, B as tableSeatCountsBySide, D as translateObject } from './layout-Gkx3fo5_.cjs';
6
- import { c as TicketSelectionIssue } from './ticketRestrictions-C31mrE97.cjs';
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-C31mrE97.cjs';
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-CRSGPI3T.cjs';
9
- export { M as MIN_POINTER_TARGET_PX, 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-CEPse8ir.cjs';
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-Cv_gzYvT.cjs';
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-Cv_gzYvT.cjs';
12
- import './segmentedRowModel-CvyOS6Bx.cjs';
1
+ import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-CqaNLbU6.cjs';
2
+ export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, m as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, l as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, k as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, j as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-CqaNLbU6.cjs';
3
+ import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-CqfrYWAb.cjs';
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-CqfrYWAb.cjs';
5
+ export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from './tableSizing-BdCyNeqX.cjs';
6
+ import { c as TicketSelectionIssue } from './ticketRestrictions-CPZglNvw.cjs';
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-CPZglNvw.cjs';
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-CA-bBex5.cjs';
9
+ export { M as MIN_POINTER_TARGET_PX, 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-1E9KuJvY.cjs';
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-BRmVrITG.cjs';
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-BRmVrITG.cjs';
12
+ import './segmentedRowModel-C7XOEjHk.cjs';
13
13
 
14
14
  /**
15
15
  * Half-width of the band around a legibility threshold, in rendered pixels.
@@ -100,6 +100,13 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
100
100
  private seatLayer;
101
101
  private overlayLayer;
102
102
  private labelGroup;
103
+ /** Row letters live in their own child of {@link labelGroup}: they are
104
+ * rebuilt every settle, while the seat numbers beside them are reused. */
105
+ private rowLabelGroup;
106
+ /** Live seat-number / status-cue nodes, kept across settles — see
107
+ * render/viewportLabels `seatLabelPool`. */
108
+ private seatLabelPool;
109
+ private statusCuePool;
103
110
  /** Per-elevated-section label containers. Keeping the labels grouped lets the
104
111
  * Phase-B lift move thousands of seat labels with one transform per section
105
112
  * instead of rewriting every label on every tween frame. */
@@ -183,6 +190,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
183
190
  private seatMarks;
184
191
  /** One selected seat being inspected before it is committed to the cart. */
185
192
  private selectionFocusId;
193
+ /** Seats that keep full ink while the confirm card is open — see
194
+ * render/selectionNeighbourhood. Null whenever there is no focus. */
195
+ private selectionFocusKeep;
196
+ /** The camera as it stood when the host hid the map — see render/hostResize. */
197
+ private hiddenPose;
186
198
  private hoverRing;
187
199
  /** Seat currently owning the shared hover ring (null while not hovering). */
188
200
  private hoveredId;
@@ -297,6 +309,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
297
309
  * half the chart's seat pitch. Depth/ceiling maths read this, never seatR:
298
310
  * a traced plan leaves the radius at its default and packs the seats. */
299
311
  private markerR;
312
+ /** Median in-row seat spacing, world units — the section-less neighbourhood's unit. */
313
+ private seatPitch;
300
314
  private bounds;
301
315
  private cached;
302
316
  private dpr;
@@ -609,7 +623,25 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
609
623
  /** Host-pushed GA availability / pending quantity — see {@link paintGAState}. */
610
624
  setGAStates(states: Record<string, GAAreaState>): void;
611
625
  setGAState(areaId: string, state: GAAreaState): void;
612
- /** Frame available inventory; narrow maps enter usable seat detail. */
626
+ /**
627
+ * Take the buyer to the seats a price band left them (owner rule, 2026-09-03).
628
+ *
629
+ * Cluster the matches, then answer the question their SHAPE asks:
630
+ *
631
+ * - **One contiguous block** (and, on a sectioned chart, one section) — dive
632
+ * into it, to the depth where its seats are both pickable and numbered.
633
+ * Nothing to choose between, so showing it from far away only costs a tap.
634
+ * This also closes the dead zone the validator found: a 30-seat band framed
635
+ * at ~1.35 has 24px markers and NOT ONE number, the chart's authored 7-unit
636
+ * font rendering at 9.5px against a 12px floor — `minScale` re-asks that.
637
+ * - **Several blocks** — frame the union so every block is on screen, diving
638
+ * into none. Mobile audit finding 6: a phone price chip teleported into a
639
+ * close-up of the dominant block, answering "where are the $42 seats?" with
640
+ * a handful and no sign there were more. The buyer picks; the tap dives.
641
+ *
642
+ * `null`/empty keeps the camera exactly where it is: clearing a band removes
643
+ * a constraint, and re-fitting the venue threw away the buyer's own zoom.
644
+ */
613
645
  focusCategories(keys: string[] | null, opts?: {
614
646
  animate?: boolean;
615
647
  }): void;
@@ -727,6 +759,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
727
759
  * Grand Circle and its seats lost their numbers (owner report 2026-08-27),
728
760
  * at a zoom where they were fully bright on screen.
729
761
  */
762
+ /** Is the confirm-card focus receding THIS seat? False with no focus, false
763
+ * for the candidate, and false for its neighbourhood — see
764
+ * render/selectionNeighbourhood for how the neighbourhood is drawn. */
765
+ private selectionFocusDims;
730
766
  private focusedSeatOpacity;
731
767
  private sectionScreenBounds;
732
768
  /** Hide only section groups wholly outside a padded viewport at the live-seat
@@ -782,11 +818,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
782
818
  * mirroring the section convention (labelStyle.size ?? 18) / 18. Only real
783
819
  * seats carry labelStyle, so booths and unstyled seats resolve to 1. */
784
820
  private seatLabelScale;
785
- /** Preferred label ink for a seat: the authored per-seat colour when set,
786
- * otherwise today's theme default. Fed through auto-contrast by seatLabelInk. */
821
+ /** Preferred label ink for a seat: the exact per-seat colour when set,
822
+ * otherwise today's automatic theme default. */
787
823
  private seatPreferredLabelInk;
788
- /** Resolve a seat's label ink against the paint actually visible, honouring an
789
- * authored per-seat colour through the same auto-contrast rule as sections. */
824
+ /** Preserve an explicit seat-number swatch exactly; only Automatic follows
825
+ * the state-aware contrast fallback as seat paint changes. */
790
826
  private seatLabelInk;
791
827
  /** Apply fill/stroke/opacity for a seat's current status + selection. */
792
828
  private paintSeat;
@@ -937,6 +973,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
937
973
  /** Seat ids belonging to a section (Slice 5 section-summary card). */
938
974
  sectionMembers(id: string): string[];
939
975
  private isSelectable;
976
+ /** One question for the one excluded treatment — see render/filterExclusion. */
977
+ private filterExcludesSeat;
940
978
  /**
941
979
  * Is this seat out of the sale purely because the accessibility filter is on?
942
980
  *
@@ -1077,8 +1115,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1077
1115
  * settled state. Without it a backdrop tap (clearSectionFocus + zoomToFit)
1078
1116
  * left the widget's deep state on the pre-settle reading — the map back at
1079
1117
  * the overview, the chrome still saying the buyer was inside a section.
1118
+ *
1119
+ * Public because a HOST rebuild owes one too: `setChart` empties the label
1120
+ * and status-cue pools, and restoring an identical camera pose after it runs
1121
+ * no pass of its own. See PickerController.rebuildPreservingState.
1080
1122
  */
1081
- private settleView;
1123
+ settleView(): void;
1082
1124
  /** Once the buyer is roaming, the locator names what is ON SCREEN rather than
1083
1125
  * what they tapped — WITHOUT moving the camera. Retargeting is a
1084
1126
  * relabelling; a glide here would fight the pan that caused it. */
@@ -1136,6 +1178,7 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1136
1178
  private objectFilteredOut;
1137
1179
  private updateLabels;
1138
1180
  private get viewportLabelContext();
1181
+ /** See render/hostResize for the rule; this is the part that touches state. */
1139
1182
  private handleResize;
1140
1183
  }
1141
1184
  declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-BVRza86Q.js';
2
- export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, l as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, k as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, j as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, m as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-BVRza86Q.js';
3
- import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-BQGuLLv0.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-BQGuLLv0.js';
5
- export { C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, a as FLOOR_STACK_MIN_SURFACE_PX, b as FloorStackOptions, c as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, d as TableSeatSlot, e as allObjects, f as chartBounds, g as expandBooth, h as expandChart, i as expandRow, j as expandRowSlots, k as expandTable, l as expandTableSlots, m as floorObjects, n as floorStackPlacements, o as floorsOf, p as initialFloorMode, q as layoutFloorStack, r as mainFloorId, s as objectCenter, t as owningSectionForObject, u as pointInPolygon, v as pointInPolygonWithHoles, w as polygonLabelPoint, x as rowInventoryCount, y as rowSeatPositions, z as stackFloors, A as tableInventoryCount, B as tableSeatCountsBySide, D as translateObject } from './layout-DGbWo5fV.js';
6
- import { c as TicketSelectionIssue } from './ticketRestrictions-DXO2eckD.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-DXO2eckD.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-DIVvr8QN.js';
9
- export { M as MIN_POINTER_TARGET_PX, 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-BYhJ3Cer.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-BlLKrW-U.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-BlLKrW-U.js';
12
- import './segmentedRowModel-CD-YT9bT.js';
1
+ import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-CqaNLbU6.js';
2
+ export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, m as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, l as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, k as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, j as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-CqaNLbU6.js';
3
+ import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-Dhauc9V3.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-Dhauc9V3.js';
5
+ export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from './tableSizing-D8e8QAJ-.js';
6
+ import { c as TicketSelectionIssue } from './ticketRestrictions-CorjMY49.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-CorjMY49.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-ByTMouG8.js';
9
+ export { M as MIN_POINTER_TARGET_PX, 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-ChAZNV2N.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-q7viZLGZ.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-q7viZLGZ.js';
12
+ import './segmentedRowModel-DcvJVKLD.js';
13
13
 
14
14
  /**
15
15
  * Half-width of the band around a legibility threshold, in rendered pixels.
@@ -100,6 +100,13 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
100
100
  private seatLayer;
101
101
  private overlayLayer;
102
102
  private labelGroup;
103
+ /** Row letters live in their own child of {@link labelGroup}: they are
104
+ * rebuilt every settle, while the seat numbers beside them are reused. */
105
+ private rowLabelGroup;
106
+ /** Live seat-number / status-cue nodes, kept across settles — see
107
+ * render/viewportLabels `seatLabelPool`. */
108
+ private seatLabelPool;
109
+ private statusCuePool;
103
110
  /** Per-elevated-section label containers. Keeping the labels grouped lets the
104
111
  * Phase-B lift move thousands of seat labels with one transform per section
105
112
  * instead of rewriting every label on every tween frame. */
@@ -183,6 +190,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
183
190
  private seatMarks;
184
191
  /** One selected seat being inspected before it is committed to the cart. */
185
192
  private selectionFocusId;
193
+ /** Seats that keep full ink while the confirm card is open — see
194
+ * render/selectionNeighbourhood. Null whenever there is no focus. */
195
+ private selectionFocusKeep;
196
+ /** The camera as it stood when the host hid the map — see render/hostResize. */
197
+ private hiddenPose;
186
198
  private hoverRing;
187
199
  /** Seat currently owning the shared hover ring (null while not hovering). */
188
200
  private hoveredId;
@@ -297,6 +309,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
297
309
  * half the chart's seat pitch. Depth/ceiling maths read this, never seatR:
298
310
  * a traced plan leaves the radius at its default and packs the seats. */
299
311
  private markerR;
312
+ /** Median in-row seat spacing, world units — the section-less neighbourhood's unit. */
313
+ private seatPitch;
300
314
  private bounds;
301
315
  private cached;
302
316
  private dpr;
@@ -609,7 +623,25 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
609
623
  /** Host-pushed GA availability / pending quantity — see {@link paintGAState}. */
610
624
  setGAStates(states: Record<string, GAAreaState>): void;
611
625
  setGAState(areaId: string, state: GAAreaState): void;
612
- /** Frame available inventory; narrow maps enter usable seat detail. */
626
+ /**
627
+ * Take the buyer to the seats a price band left them (owner rule, 2026-09-03).
628
+ *
629
+ * Cluster the matches, then answer the question their SHAPE asks:
630
+ *
631
+ * - **One contiguous block** (and, on a sectioned chart, one section) — dive
632
+ * into it, to the depth where its seats are both pickable and numbered.
633
+ * Nothing to choose between, so showing it from far away only costs a tap.
634
+ * This also closes the dead zone the validator found: a 30-seat band framed
635
+ * at ~1.35 has 24px markers and NOT ONE number, the chart's authored 7-unit
636
+ * font rendering at 9.5px against a 12px floor — `minScale` re-asks that.
637
+ * - **Several blocks** — frame the union so every block is on screen, diving
638
+ * into none. Mobile audit finding 6: a phone price chip teleported into a
639
+ * close-up of the dominant block, answering "where are the $42 seats?" with
640
+ * a handful and no sign there were more. The buyer picks; the tap dives.
641
+ *
642
+ * `null`/empty keeps the camera exactly where it is: clearing a band removes
643
+ * a constraint, and re-fitting the venue threw away the buyer's own zoom.
644
+ */
613
645
  focusCategories(keys: string[] | null, opts?: {
614
646
  animate?: boolean;
615
647
  }): void;
@@ -727,6 +759,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
727
759
  * Grand Circle and its seats lost their numbers (owner report 2026-08-27),
728
760
  * at a zoom where they were fully bright on screen.
729
761
  */
762
+ /** Is the confirm-card focus receding THIS seat? False with no focus, false
763
+ * for the candidate, and false for its neighbourhood — see
764
+ * render/selectionNeighbourhood for how the neighbourhood is drawn. */
765
+ private selectionFocusDims;
730
766
  private focusedSeatOpacity;
731
767
  private sectionScreenBounds;
732
768
  /** Hide only section groups wholly outside a padded viewport at the live-seat
@@ -782,11 +818,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
782
818
  * mirroring the section convention (labelStyle.size ?? 18) / 18. Only real
783
819
  * seats carry labelStyle, so booths and unstyled seats resolve to 1. */
784
820
  private seatLabelScale;
785
- /** Preferred label ink for a seat: the authored per-seat colour when set,
786
- * otherwise today's theme default. Fed through auto-contrast by seatLabelInk. */
821
+ /** Preferred label ink for a seat: the exact per-seat colour when set,
822
+ * otherwise today's automatic theme default. */
787
823
  private seatPreferredLabelInk;
788
- /** Resolve a seat's label ink against the paint actually visible, honouring an
789
- * authored per-seat colour through the same auto-contrast rule as sections. */
824
+ /** Preserve an explicit seat-number swatch exactly; only Automatic follows
825
+ * the state-aware contrast fallback as seat paint changes. */
790
826
  private seatLabelInk;
791
827
  /** Apply fill/stroke/opacity for a seat's current status + selection. */
792
828
  private paintSeat;
@@ -937,6 +973,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
937
973
  /** Seat ids belonging to a section (Slice 5 section-summary card). */
938
974
  sectionMembers(id: string): string[];
939
975
  private isSelectable;
976
+ /** One question for the one excluded treatment — see render/filterExclusion. */
977
+ private filterExcludesSeat;
940
978
  /**
941
979
  * Is this seat out of the sale purely because the accessibility filter is on?
942
980
  *
@@ -1077,8 +1115,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1077
1115
  * settled state. Without it a backdrop tap (clearSectionFocus + zoomToFit)
1078
1116
  * left the widget's deep state on the pre-settle reading — the map back at
1079
1117
  * the overview, the chrome still saying the buyer was inside a section.
1118
+ *
1119
+ * Public because a HOST rebuild owes one too: `setChart` empties the label
1120
+ * and status-cue pools, and restoring an identical camera pose after it runs
1121
+ * no pass of its own. See PickerController.rebuildPreservingState.
1080
1122
  */
1081
- private settleView;
1123
+ settleView(): void;
1082
1124
  /** Once the buyer is roaming, the locator names what is ON SCREEN rather than
1083
1125
  * what they tapped — WITHOUT moving the camera. Retargeting is a
1084
1126
  * relabelling; a glide here would fight the pan that caused it. */
@@ -1136,6 +1178,7 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
1136
1178
  private objectFilteredOut;
1137
1179
  private updateLabels;
1138
1180
  private get viewportLabelContext();
1181
+ /** See render/hostResize for the rule; this is the part that touches state. */
1139
1182
  private handleResize;
1140
1183
  }
1141
1184
  declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;