@seatlayer/core 0.72.1 → 0.74.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 (73) hide show
  1. package/dist/{categoryInventory-Bt-0psga.d.ts → categoryInventory-Bcmnr6ZH.d.ts} +1 -1
  2. package/dist/{categoryInventory-BU1j8Q70.d.cts → categoryInventory-DueSAIBX.d.cts} +1 -1
  3. package/dist/{chunk-O5UWBFUT.js → chunk-3L4M7L5I.js} +1 -1
  4. package/dist/chunk-5JB4VW6B.js +1 -0
  5. package/dist/{chunk-5U25QLSS.js → chunk-6TIKEDC4.js} +1 -1
  6. package/dist/{chunk-YW2WGLRM.js → chunk-BAWUBGWY.js} +1 -1
  7. package/dist/chunk-JLYR66MT.js +1 -0
  8. package/dist/{chunk-KCFEFP6H.js → chunk-KN7GLEAI.js} +1 -1
  9. package/dist/{chunk-KPSJDH3N.js → chunk-N5NRM4NW.js} +1 -1
  10. package/dist/chunk-QLDV5ZGA.js +1 -0
  11. package/dist/{chunk-AM2LRFAY.js → chunk-UX67GDLV.js} +1 -1
  12. package/dist/{chunk-ALE2T36W.js → chunk-YFV4DSSX.js} +1 -1
  13. package/dist/{chunk-NKYPEBW3.js → chunk-ZMYRXJOA.js} +1 -1
  14. package/dist/core/chart-ops/index.cjs +1 -1
  15. package/dist/core/chart-ops/index.d.cts +11 -4
  16. package/dist/core/chart-ops/index.d.ts +11 -4
  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 +11 -4
  20. package/dist/core/inventory/index.d.ts +11 -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 +3 -3
  28. package/dist/core/quality/index.d.ts +3 -3
  29. package/dist/core/quality/index.js +1 -1
  30. package/dist/core/render-assets/index.cjs +1 -1
  31. package/dist/core/render-assets/index.d.cts +1 -1
  32. package/dist/core/render-assets/index.d.ts +1 -1
  33. package/dist/core/render-assets/index.js +1 -1
  34. package/dist/core/seatConfidence.d.cts +1 -1
  35. package/dist/core/seatConfidence.d.ts +1 -1
  36. package/dist/core/sections/index.cjs +1 -1
  37. package/dist/core/sections/index.d.cts +5 -5
  38. package/dist/core/sections/index.d.ts +5 -5
  39. package/dist/core/sections/index.js +1 -1
  40. package/dist/{eventConfigurations-DfVUGyCg.d.ts → eventConfigurations-C7YAqkFR.d.ts} +1 -1
  41. package/dist/{eventConfigurations-3uSorYVC.d.cts → eventConfigurations-DwXdrjqj.d.cts} +1 -1
  42. package/dist/index.cjs +1 -1
  43. package/dist/index.d.cts +102 -13
  44. package/dist/index.d.ts +102 -13
  45. package/dist/index.js +1 -1
  46. package/dist/{labeling-BiWB-8aq.d.ts → labeling-BUCj-kHU.d.ts} +1 -1
  47. package/dist/{labeling-9RWWmJhZ.d.cts → labeling-iugoy25P.d.cts} +1 -1
  48. package/dist/{layout-B6iOoPOv.d.cts → layout-DPJX6D9k.d.cts} +3 -3
  49. package/dist/{layout-B7URbtDR.d.ts → layout-Dv3R0Mpw.d.ts} +3 -3
  50. package/dist/{renderedQuality-C5dQiq97.d.ts → renderedQuality-CSHrmnHf.d.cts} +10 -2
  51. package/dist/{renderedQuality-BZsq3wDe.d.cts → renderedQuality-CfonzUpl.d.ts} +10 -2
  52. package/dist/{renderer-6sFRupj0.d.ts → renderer-C5avrVLy.d.ts} +11 -2
  53. package/dist/{renderer-CBOo1OZk.d.cts → renderer-Dn4Plcv9.d.cts} +11 -2
  54. package/dist/{sections-DU6YDYoZ.d.cts → sections-DhJ7TukF.d.cts} +1 -1
  55. package/dist/{sections-Cn_sk1Sx.d.ts → sections-uV7vqDHj.d.ts} +1 -1
  56. package/dist/{segmentedRowModel-CKmyHvKv.d.cts → segmentedRowModel-DWOjcPrU.d.cts} +1 -1
  57. package/dist/{segmentedRowModel-DbP7pWUk.d.ts → segmentedRowModel-DgSEzAYd.d.ts} +1 -1
  58. package/dist/{ticketRestrictions-CvS2oQ8v.d.ts → ticketRestrictions-DIh61MqE.d.ts} +2 -2
  59. package/dist/{ticketRestrictions-DkenahW2.d.cts → ticketRestrictions-JT87K45q.d.cts} +2 -2
  60. package/dist/{types-D6-wLa-m.d.cts → types-Dx4jA8aI.d.cts} +22 -4
  61. package/dist/{types-D6-wLa-m.d.ts → types-Dx4jA8aI.d.ts} +22 -4
  62. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  63. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  64. package/dist/view3d/index.cjs +1 -1
  65. package/dist/view3d/index.d.cts +3 -3
  66. package/dist/view3d/index.d.ts +3 -3
  67. package/dist/view3d/index.js +1 -1
  68. package/dist/view3d/scene/scene.worker.cjs +1 -1
  69. package/dist/view3d/scene/scene.worker.js +1 -1
  70. package/package.json +1 -1
  71. package/dist/chunk-4F7VBQCF.js +0 -1
  72. package/dist/chunk-HXYWP6NX.js +0 -1
  73. package/dist/chunk-XLGYWT5G.js +0 -1
package/dist/index.d.cts CHANGED
@@ -1,15 +1,70 @@
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-D6-wLa-m.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 ReferenceDirectSeatGroup, a2 as ReferenceDirectSeatImportSource, a3 as ReferenceDirectSeatPlan, a4 as ReferenceEnrichmentStatus, a5 as ReferenceExtractEmptyReason, a6 as ReferenceExtractEnrichment, a7 as ReferenceExtractInput, a8 as ReferenceExtractProposal, a9 as ReferenceExtractRegionSeats, aa as ReferenceInventoryExclusionSource, ab as ReferenceInventorySource, ac as ReferenceMatchReport, ad as ReferenceScanProposal, ae as ReferenceScanRowProposal, af as ReferenceScanSectionProposal, ag as ReferenceSeatSeed, ah as ReferenceSectionTraceBatchInput, ai as ReferenceSectionTraceBatchProposal, aj as ReferenceSectionTraceInput, ak as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, al as SEAT_COMMERCIAL_MARKS, am as STAGE_LABEL_STYLE_MAX_SIZE, an as SURROUNDINGS_SHAPE_ROLES, ao as SeatCommercialMark, ap as SeatCommercialMeta, aq as SeatConfidenceCoverage, ar as SeatConfidenceEvidence, as as SeatConfidenceModelLevel, at as SeatConfidenceModeledTarget, au as SeatConfidenceRealityLevel, d as SeatGlyphKind, j as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, av as SeatViewVariant, m as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, aw as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, ax as StageLabelStyle, T as TableObject, ay as TextAlignment, az as TextBackground, v as TextObject, aA as TicketTierApplicability, aB as TicketTierEvidence, aC as TicketTierRestriction, aD as Venue3DMaterialPalette, aE as VenueSurveyRegistrationEvidence, aF as ZoneDef, aG as accessibilityMeta, aH as accessibilityRingColor, aI as layerOf, aJ as seatCommercialMeta } from './types-D6-wLa-m.cjs';
3
- import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-3uSorYVC.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-3uSorYVC.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-B6iOoPOv.cjs';
6
- import { c as TicketSelectionIssue } from './ticketRestrictions-DkenahW2.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-DkenahW2.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-DU6YDYoZ.cjs';
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-BZsq3wDe.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-CBOo1OZk.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-CBOo1OZk.cjs';
12
- import './segmentedRowModel-CKmyHvKv.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-Dx4jA8aI.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-Dx4jA8aI.cjs';
3
+ import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-DwXdrjqj.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-DwXdrjqj.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-DPJX6D9k.cjs';
6
+ import { c as TicketSelectionIssue } from './ticketRestrictions-JT87K45q.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-JT87K45q.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-DhJ7TukF.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-CSHrmnHf.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-Dn4Plcv9.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-Dn4Plcv9.cjs';
12
+ import './segmentedRowModel-DWOjcPrU.cjs';
13
+
14
+ /**
15
+ * Half-width of the band around a legibility threshold, in rendered pixels.
16
+ *
17
+ * A pinch crosses a threshold continuously, so a bare comparison makes labels
18
+ * strobe around the boundary. A decision that is already on stays on until the
19
+ * measurement falls a pixel BELOW the threshold; one that is off needs a pixel
20
+ * above it to switch on.
21
+ */
22
+ declare const LEGIBILITY_HYSTERESIS_PX = 1;
23
+ /** Opacity ease applied when the label layer is revealed, in milliseconds. */
24
+ declare const LABEL_FADE_MS = 150;
25
+ /** Rendered size of a chart-unit measurement at the current camera scale. */
26
+ declare function renderedPx(chartUnits: number, scale: number): number;
27
+ /**
28
+ * Apply a threshold with hysteresis.
29
+ *
30
+ * `wasOn` is the decision currently in effect. Between `threshold - hysteresis`
31
+ * and `threshold + hysteresis` the previous answer stands, which is what stops
32
+ * a label switching on and off mid-pinch.
33
+ */
34
+ declare function crossesThreshold(value: number, threshold: number, wasOn: boolean, hysteresis?: number): boolean;
35
+ /**
36
+ * The same hysteresis expressed as a scale multiplier.
37
+ *
38
+ * Label legibility is decided by several predicates that all take a camera
39
+ * scale rather than a pixel measurement. Nudging the scale they are given —
40
+ * up while labels are showing, down while they are not — applies one band to
41
+ * every one of them without touching any of the tuned rungs themselves.
42
+ *
43
+ * `thresholdPx` is the rendered floor the band is relative to, so the nudge is
44
+ * worth exactly `LEGIBILITY_HYSTERESIS_PX` at that floor.
45
+ */
46
+ declare function hysteresisScale(scale: number, wasOn: boolean, thresholdPx: number, hysteresis?: number): number;
47
+ /**
48
+ * Camera translation that keeps a point under the finger while the scale
49
+ * changes — the anchored "zoom toward this point" a pinch performs.
50
+ *
51
+ * `point` is in viewport pixels; `camera` is the current stage translation.
52
+ */
53
+ declare function zoomTowardPoint(input: {
54
+ point: {
55
+ x: number;
56
+ y: number;
57
+ };
58
+ camera: {
59
+ x: number;
60
+ y: number;
61
+ };
62
+ scale: number;
63
+ nextScale: number;
64
+ }): {
65
+ x: number;
66
+ y: number;
67
+ };
13
68
 
14
69
  /**
15
70
  * Host chrome over the canvas, and the box that leaves for camera framing.
@@ -75,6 +130,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
75
130
  private boothLabelById;
76
131
  /** Viewport seat labels are rebuilt after each settled camera change. */
77
132
  private seatLabelById;
133
+ /** Why the last label pass dropped each seat it could not label, and whether
134
+ * the seat-number rung was open at all — read by the evidence pass. */
135
+ private seatLabelDrops;
136
+ private seatLabelRungOpen;
78
137
  /** Coloured accommodation ring per accessible seat (few per chart). */
79
138
  private accessRingById;
80
139
  /** Centred ♿ glyph per physical wheelchair provision. It keeps a small
@@ -171,6 +230,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
171
230
  /** Zone id → colour (drives extruded side faces in iso view). */
172
231
  private zoneColor;
173
232
  private hasSections;
233
+ /** Overview names synthesised from category geometry — see its module. */
234
+ private clusterLabels;
174
235
  /** seatLayer carries Text (booth labels) — gate the upright-label scan. */
175
236
  private hasBoothText;
176
237
  /** 0 = flat (default), 1 = full isometric; animated by setViewMode. */
@@ -200,6 +261,9 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
200
261
  private isoCentre;
201
262
  /** rAF for an in-flight camera glide (focusRegion / setRung); 0 = none. */
202
263
  private glideRaf;
264
+ /** Label-layer visibility as of the last pass — the hysteresis band's memory. */
265
+ private labelsVisible;
266
+ private labelFadeRaf;
203
267
  /** While the camera tween is active, defer polygon label fitting/collision to
204
268
  * the settled frame. Geometry remains smoothly stage-scaled, while expensive
205
269
  * point-in-polygon text work no longer repeats at 120 Hz. */
@@ -217,6 +281,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
217
281
  private viewportInsets;
218
282
  /** Effective seat radius (base × theme.seatScale), set per chart in setChart. */
219
283
  private seatR;
284
+ /** The radius a marker is actually DRAWN at — the authored radius capped by
285
+ * half the chart's seat pitch. Depth/ceiling maths read this, never seatR:
286
+ * a traced plan leaves the radius at its default and packs the seats. */
287
+ private markerR;
220
288
  private bounds;
221
289
  private cached;
222
290
  private dpr;
@@ -633,6 +701,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
633
701
  * the `unavailable` test in {@link updateLabels} so the two never collide.
634
702
  */
635
703
  private accessGlyphEligible;
704
+ /** A category's price as every map surface writes it — the loupe, and the
705
+ * sectionless overview pills. Currency formatting is the shared app rule
706
+ * (lib/money), never a per-surface one. Null when the category is unpriced. */
707
+ private categoryPriceLabel;
636
708
  /** The category's on-screen color — Okabe-Ito hue in colorblind-safe mode.
637
709
  * Public because a legend must ask; see the contract for why. */
638
710
  categoryDisplayColor(categoryKey: string): string;
@@ -696,6 +768,15 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
696
768
  * strategy, not a visual state — never use it to route a tap.
697
769
  */
698
770
  seatsRevealed(): boolean;
771
+ /**
772
+ * Can the buyer aim at a seat here? Asked in rendered pixels against the
773
+ * pointer target, never in camera scale — see `seatPickableScale` in
774
+ * ./render/viewportLabels for why, and for the floor that keeps it from ever
775
+ * being looser than the tuned rung. A focus and a floor overview are
776
+ * unchanged: both frame a chosen area, and both have always meant "seats are
777
+ * what you are looking at".
778
+ */
779
+ seatsPickable(): boolean;
699
780
  /**
700
781
  * Draw (or replace) the focus treatment: the light backdrop panel behind the
701
782
  * focused section, and the dim that pushes the rest of the venue back.
@@ -869,6 +950,14 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
869
950
  minScale?: number;
870
951
  durationMs?: number;
871
952
  }): void;
953
+ /**
954
+ * Record this pass's label decision and ease the layer in when it turns on.
955
+ *
956
+ * Labels are rebuilt from scratch on every pass, so the fade rides the shared
957
+ * label group rather than individual nodes. Reduced motion snaps, exactly as
958
+ * the camera glide does.
959
+ */
960
+ private applyLabelVisibility;
872
961
  /** Cancel an in-flight camera glide (a grab or a newer glide interrupts it). */
873
962
  private cancelGlide;
874
963
  /** Current LOD rung derived from effective zoom — drives the ZONES/SECTIONS/SEATS pill. */
@@ -2473,4 +2562,4 @@ declare function formatMinor(minor: number, currency?: string, locale?: string):
2473
2562
  /** Bare symbol for input adornments ("€", "$", "₹"). */
2474
2563
  declare function currencySymbol(currency?: string): string;
2475
2564
 
2476
- export { AccessibilityType, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount };
2565
+ export { AccessibilityType, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LABEL_FADE_MS, LEGIBILITY_HYSTERESIS_PX, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, crossesThreshold, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, hysteresisScale, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, renderedPx, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount, zoomTowardPoint };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,70 @@
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-D6-wLa-m.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 ReferenceDirectSeatGroup, a2 as ReferenceDirectSeatImportSource, a3 as ReferenceDirectSeatPlan, a4 as ReferenceEnrichmentStatus, a5 as ReferenceExtractEmptyReason, a6 as ReferenceExtractEnrichment, a7 as ReferenceExtractInput, a8 as ReferenceExtractProposal, a9 as ReferenceExtractRegionSeats, aa as ReferenceInventoryExclusionSource, ab as ReferenceInventorySource, ac as ReferenceMatchReport, ad as ReferenceScanProposal, ae as ReferenceScanRowProposal, af as ReferenceScanSectionProposal, ag as ReferenceSeatSeed, ah as ReferenceSectionTraceBatchInput, ai as ReferenceSectionTraceBatchProposal, aj as ReferenceSectionTraceInput, ak as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, al as SEAT_COMMERCIAL_MARKS, am as STAGE_LABEL_STYLE_MAX_SIZE, an as SURROUNDINGS_SHAPE_ROLES, ao as SeatCommercialMark, ap as SeatCommercialMeta, aq as SeatConfidenceCoverage, ar as SeatConfidenceEvidence, as as SeatConfidenceModelLevel, at as SeatConfidenceModeledTarget, au as SeatConfidenceRealityLevel, d as SeatGlyphKind, j as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, av as SeatViewVariant, m as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, aw as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, ax as StageLabelStyle, T as TableObject, ay as TextAlignment, az as TextBackground, v as TextObject, aA as TicketTierApplicability, aB as TicketTierEvidence, aC as TicketTierRestriction, aD as Venue3DMaterialPalette, aE as VenueSurveyRegistrationEvidence, aF as ZoneDef, aG as accessibilityMeta, aH as accessibilityRingColor, aI as layerOf, aJ as seatCommercialMeta } from './types-D6-wLa-m.js';
3
- import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-DfVUGyCg.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-DfVUGyCg.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-B7URbtDR.js';
6
- import { c as TicketSelectionIssue } from './ticketRestrictions-CvS2oQ8v.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-CvS2oQ8v.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-Cn_sk1Sx.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-C5dQiq97.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-6sFRupj0.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-6sFRupj0.js';
12
- import './segmentedRowModel-DbP7pWUk.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-Dx4jA8aI.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-Dx4jA8aI.js';
3
+ import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-C7YAqkFR.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-C7YAqkFR.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-Dv3R0Mpw.js';
6
+ import { c as TicketSelectionIssue } from './ticketRestrictions-DIh61MqE.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-DIh61MqE.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-uV7vqDHj.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-CfonzUpl.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-C5avrVLy.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-C5avrVLy.js';
12
+ import './segmentedRowModel-DgSEzAYd.js';
13
+
14
+ /**
15
+ * Half-width of the band around a legibility threshold, in rendered pixels.
16
+ *
17
+ * A pinch crosses a threshold continuously, so a bare comparison makes labels
18
+ * strobe around the boundary. A decision that is already on stays on until the
19
+ * measurement falls a pixel BELOW the threshold; one that is off needs a pixel
20
+ * above it to switch on.
21
+ */
22
+ declare const LEGIBILITY_HYSTERESIS_PX = 1;
23
+ /** Opacity ease applied when the label layer is revealed, in milliseconds. */
24
+ declare const LABEL_FADE_MS = 150;
25
+ /** Rendered size of a chart-unit measurement at the current camera scale. */
26
+ declare function renderedPx(chartUnits: number, scale: number): number;
27
+ /**
28
+ * Apply a threshold with hysteresis.
29
+ *
30
+ * `wasOn` is the decision currently in effect. Between `threshold - hysteresis`
31
+ * and `threshold + hysteresis` the previous answer stands, which is what stops
32
+ * a label switching on and off mid-pinch.
33
+ */
34
+ declare function crossesThreshold(value: number, threshold: number, wasOn: boolean, hysteresis?: number): boolean;
35
+ /**
36
+ * The same hysteresis expressed as a scale multiplier.
37
+ *
38
+ * Label legibility is decided by several predicates that all take a camera
39
+ * scale rather than a pixel measurement. Nudging the scale they are given —
40
+ * up while labels are showing, down while they are not — applies one band to
41
+ * every one of them without touching any of the tuned rungs themselves.
42
+ *
43
+ * `thresholdPx` is the rendered floor the band is relative to, so the nudge is
44
+ * worth exactly `LEGIBILITY_HYSTERESIS_PX` at that floor.
45
+ */
46
+ declare function hysteresisScale(scale: number, wasOn: boolean, thresholdPx: number, hysteresis?: number): number;
47
+ /**
48
+ * Camera translation that keeps a point under the finger while the scale
49
+ * changes — the anchored "zoom toward this point" a pinch performs.
50
+ *
51
+ * `point` is in viewport pixels; `camera` is the current stage translation.
52
+ */
53
+ declare function zoomTowardPoint(input: {
54
+ point: {
55
+ x: number;
56
+ y: number;
57
+ };
58
+ camera: {
59
+ x: number;
60
+ y: number;
61
+ };
62
+ scale: number;
63
+ nextScale: number;
64
+ }): {
65
+ x: number;
66
+ y: number;
67
+ };
13
68
 
14
69
  /**
15
70
  * Host chrome over the canvas, and the box that leaves for camera framing.
@@ -75,6 +130,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
75
130
  private boothLabelById;
76
131
  /** Viewport seat labels are rebuilt after each settled camera change. */
77
132
  private seatLabelById;
133
+ /** Why the last label pass dropped each seat it could not label, and whether
134
+ * the seat-number rung was open at all — read by the evidence pass. */
135
+ private seatLabelDrops;
136
+ private seatLabelRungOpen;
78
137
  /** Coloured accommodation ring per accessible seat (few per chart). */
79
138
  private accessRingById;
80
139
  /** Centred ♿ glyph per physical wheelchair provision. It keeps a small
@@ -171,6 +230,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
171
230
  /** Zone id → colour (drives extruded side faces in iso view). */
172
231
  private zoneColor;
173
232
  private hasSections;
233
+ /** Overview names synthesised from category geometry — see its module. */
234
+ private clusterLabels;
174
235
  /** seatLayer carries Text (booth labels) — gate the upright-label scan. */
175
236
  private hasBoothText;
176
237
  /** 0 = flat (default), 1 = full isometric; animated by setViewMode. */
@@ -200,6 +261,9 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
200
261
  private isoCentre;
201
262
  /** rAF for an in-flight camera glide (focusRegion / setRung); 0 = none. */
202
263
  private glideRaf;
264
+ /** Label-layer visibility as of the last pass — the hysteresis band's memory. */
265
+ private labelsVisible;
266
+ private labelFadeRaf;
203
267
  /** While the camera tween is active, defer polygon label fitting/collision to
204
268
  * the settled frame. Geometry remains smoothly stage-scaled, while expensive
205
269
  * point-in-polygon text work no longer repeats at 120 Hz. */
@@ -217,6 +281,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
217
281
  private viewportInsets;
218
282
  /** Effective seat radius (base × theme.seatScale), set per chart in setChart. */
219
283
  private seatR;
284
+ /** The radius a marker is actually DRAWN at — the authored radius capped by
285
+ * half the chart's seat pitch. Depth/ceiling maths read this, never seatR:
286
+ * a traced plan leaves the radius at its default and packs the seats. */
287
+ private markerR;
220
288
  private bounds;
221
289
  private cached;
222
290
  private dpr;
@@ -633,6 +701,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
633
701
  * the `unavailable` test in {@link updateLabels} so the two never collide.
634
702
  */
635
703
  private accessGlyphEligible;
704
+ /** A category's price as every map surface writes it — the loupe, and the
705
+ * sectionless overview pills. Currency formatting is the shared app rule
706
+ * (lib/money), never a per-surface one. Null when the category is unpriced. */
707
+ private categoryPriceLabel;
636
708
  /** The category's on-screen color — Okabe-Ito hue in colorblind-safe mode.
637
709
  * Public because a legend must ask; see the contract for why. */
638
710
  categoryDisplayColor(categoryKey: string): string;
@@ -696,6 +768,15 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
696
768
  * strategy, not a visual state — never use it to route a tap.
697
769
  */
698
770
  seatsRevealed(): boolean;
771
+ /**
772
+ * Can the buyer aim at a seat here? Asked in rendered pixels against the
773
+ * pointer target, never in camera scale — see `seatPickableScale` in
774
+ * ./render/viewportLabels for why, and for the floor that keeps it from ever
775
+ * being looser than the tuned rung. A focus and a floor overview are
776
+ * unchanged: both frame a chosen area, and both have always meant "seats are
777
+ * what you are looking at".
778
+ */
779
+ seatsPickable(): boolean;
699
780
  /**
700
781
  * Draw (or replace) the focus treatment: the light backdrop panel behind the
701
782
  * focused section, and the dim that pushes the rest of the venue back.
@@ -869,6 +950,14 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
869
950
  minScale?: number;
870
951
  durationMs?: number;
871
952
  }): void;
953
+ /**
954
+ * Record this pass's label decision and ease the layer in when it turns on.
955
+ *
956
+ * Labels are rebuilt from scratch on every pass, so the fade rides the shared
957
+ * label group rather than individual nodes. Reduced motion snaps, exactly as
958
+ * the camera glide does.
959
+ */
960
+ private applyLabelVisibility;
872
961
  /** Cancel an in-flight camera glide (a grab or a newer glide interrupts it). */
873
962
  private cancelGlide;
874
963
  /** Current LOD rung derived from effective zoom — drives the ZONES/SECTIONS/SEATS pill. */
@@ -2473,4 +2562,4 @@ declare function formatMinor(minor: number, currency?: string, locale?: string):
2473
2562
  /** Bare symbol for input adornments ("€", "$", "₹"). */
2474
2563
  declare function currencySymbol(currency?: string): string;
2475
2564
 
2476
- export { AccessibilityType, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount };
2565
+ export { AccessibilityType, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LABEL_FADE_MS, LEGIBILITY_HYSTERESIS_PX, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, crossesThreshold, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, hysteresisScale, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, renderedPx, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount, zoomTowardPoint };