@seatlayer/core 0.61.0 → 0.63.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 (67) hide show
  1. package/dist/{categoryInventory-B-0p5PBr.d.ts → categoryInventory-C3RogGHF.d.ts} +1 -1
  2. package/dist/{categoryInventory-DjFHXtp6.d.cts → categoryInventory-DEgsjxCC.d.cts} +1 -1
  3. package/dist/{chunk-IZTHA3X2.js → chunk-DFNYIQY3.js} +1 -1
  4. package/dist/chunk-GXMGOWKB.js +1 -0
  5. package/dist/chunk-K7GN3IOW.js +1 -0
  6. package/dist/{chunk-HHM3PB66.js → chunk-LVUGIKHG.js} +1 -1
  7. package/dist/{chunk-VOJMGPDK.js → chunk-QHWOX6PN.js} +1 -1
  8. package/dist/chunk-RZLIIQDP.js +1 -0
  9. package/dist/{chunk-XU73MULJ.js → chunk-UCLIUNHN.js} +1 -1
  10. package/dist/chunk-UL5OIGIF.js +1 -0
  11. package/dist/{chunk-ATFAQDPR.js → chunk-YPVY3Z5S.js} +1 -1
  12. package/dist/core/chart-ops/index.cjs +1 -1
  13. package/dist/core/chart-ops/index.d.cts +9 -5
  14. package/dist/core/chart-ops/index.d.ts +9 -5
  15. package/dist/core/chart-ops/index.js +1 -1
  16. package/dist/core/inventory/index.cjs +1 -1
  17. package/dist/core/inventory/index.d.cts +4 -4
  18. package/dist/core/inventory/index.d.ts +4 -4
  19. package/dist/core/inventory/index.js +1 -1
  20. package/dist/core/layout/index.cjs +1 -1
  21. package/dist/core/layout/index.d.cts +4 -4
  22. package/dist/core/layout/index.d.ts +4 -4
  23. package/dist/core/layout/index.js +1 -1
  24. package/dist/core/quality/index.cjs +1 -1
  25. package/dist/core/quality/index.d.cts +12 -5
  26. package/dist/core/quality/index.d.ts +12 -5
  27. package/dist/core/quality/index.js +1 -1
  28. package/dist/core/render-assets/index.cjs +1 -1
  29. package/dist/core/render-assets/index.d.cts +88 -2
  30. package/dist/core/render-assets/index.d.ts +88 -2
  31. package/dist/core/render-assets/index.js +1 -1
  32. package/dist/core/seatConfidence.d.cts +1 -1
  33. package/dist/core/seatConfidence.d.ts +1 -1
  34. package/dist/core/sections/index.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/index.cjs +1 -1
  39. package/dist/index.d.cts +34 -10
  40. package/dist/index.d.ts +34 -10
  41. package/dist/index.js +1 -1
  42. package/dist/{labeling-iVwhgoip.d.cts → labeling-DRFC35VK.d.cts} +5 -2
  43. package/dist/{labeling-BPCTQfDG.d.ts → labeling-DTHo03rf.d.ts} +5 -2
  44. package/dist/{layout-D-R46h1m.d.ts → layout-BXB8Rf4n.d.ts} +10 -4
  45. package/dist/{layout-Vk2ZGdMS.d.cts → layout-DRB0-NGc.d.cts} +10 -4
  46. package/dist/{renderedQuality-CsXNQCCH.d.ts → renderedQuality-BjSBiqkN.d.ts} +1 -1
  47. package/dist/{renderedQuality-h9RvUWMo.d.cts → renderedQuality-DK7IGCju.d.cts} +1 -1
  48. package/dist/{renderer-QnB3a1yh.d.cts → renderer-BNzVBOBW.d.cts} +11 -1
  49. package/dist/{renderer-Bo9JzqMA.d.ts → renderer-Bhc5CgOS.d.ts} +11 -1
  50. package/dist/{sections-9_Ka3i-z.d.ts → sections-BrQV1WzI.d.ts} +1 -1
  51. package/dist/{sections-Dmjtj1BQ.d.cts → sections-D2bxgVgg.d.cts} +1 -1
  52. package/dist/{segmentedRowModel-s157HmRp.d.cts → segmentedRowModel-BQYSdf7k.d.cts} +1 -1
  53. package/dist/{segmentedRowModel-CO6Jogaa.d.ts → segmentedRowModel-Cl3X8SKt.d.ts} +1 -1
  54. package/dist/{ticketRestrictions-EJTEWPGN.d.ts → ticketRestrictions-B9WkJ6YG.d.ts} +2 -2
  55. package/dist/{ticketRestrictions-DetdPbsL.d.cts → ticketRestrictions-QBvY3Zi7.d.cts} +2 -2
  56. package/dist/{types-Db9rXT14.d.cts → types-DmgX-iuD.d.cts} +48 -1
  57. package/dist/{types-Db9rXT14.d.ts → types-DmgX-iuD.d.ts} +48 -1
  58. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  59. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  60. package/dist/view3d/index.cjs +102 -38
  61. package/dist/view3d/index.d.cts +4 -2
  62. package/dist/view3d/index.d.ts +4 -2
  63. package/dist/view3d/index.js +106 -42
  64. package/package.json +1 -1
  65. package/dist/chunk-CNCFI5RT.js +0 -1
  66. package/dist/chunk-P2NJ6UO6.js +0 -1
  67. package/dist/chunk-VI2CLV3Y.js +0 -1
@@ -1,4 +1,4 @@
1
- import { i as SectionOutlinePath, P as Point, j as SectionPathSegment } from './types-Db9rXT14.cjs';
1
+ import { j as SectionOutlinePath, P as Point, k as SectionPathSegment } from './types-DmgX-iuD.cjs';
2
2
 
3
3
  declare function sectionPathSegmentEnd(segment: SectionPathSegment): Point;
4
4
  /** Validate finite, continuous closed-path geometry without trusting renderer
@@ -15,6 +15,9 @@ declare function transformSectionOutlinePath(path: SectionOutlinePath, transform
15
15
  * polygon section is closed. Wide, gently-angled corners round; sharp structural
16
16
  * corners stay crisp, so a rectangle drawn as a polygon is left untouched. */
17
17
  declare const DEFAULT_SECTION_CORNER_SMOOTHING = 45;
18
+ /** Interior-angle threshold for a 0..1 strength: flat at the default, then
19
+ * linear down to the full-strength threshold. Exported for the tests. */
20
+ declare function cornerSmoothingThresholdDeg(strength: number): number;
18
21
  /**
19
22
  * Build a smooth closed {@link SectionOutlinePath} by rounding the wide corners
20
23
  * of a hand-clicked polygon. The polygon stays authoritative — this is a purely
@@ -87,4 +90,4 @@ declare function relabelRows<T extends {
87
90
  label: string;
88
91
  }>(rows: T[], opts: RelabelOptions): T[];
89
92
 
90
- export { DEFAULT_SECTION_CORNER_SMOOTHING as D, MAX_EDGE_SAGITTA_RATIO as M, type RelabelOptions as R, type SectionOutlineDerivation as S, reverseSectionOutlinePath as a, sectionCornerSmoothingPath as b, sectionOutlinePathFrom as c, sectionPathSegmentEnd as d, toLetters as e, toRoman as f, transformSectionOutlinePath as g, translateSectionOutlinePath as h, indexLabel as i, relabelRows as r, sampleSectionOutlinePath as s, toBijectiveBase as t, validSectionOutlinePath as v };
93
+ export { DEFAULT_SECTION_CORNER_SMOOTHING as D, MAX_EDGE_SAGITTA_RATIO as M, type RelabelOptions as R, type SectionOutlineDerivation as S, reverseSectionOutlinePath as a, sectionCornerSmoothingPath as b, cornerSmoothingThresholdDeg as c, sectionOutlinePathFrom as d, sectionPathSegmentEnd as e, toLetters as f, toRoman as g, transformSectionOutlinePath as h, indexLabel as i, translateSectionOutlinePath as j, relabelRows as r, sampleSectionOutlinePath as s, toBijectiveBase as t, validSectionOutlinePath as v };
@@ -1,4 +1,4 @@
1
- import { i as SectionOutlinePath, P as Point, j as SectionPathSegment } from './types-Db9rXT14.js';
1
+ import { j as SectionOutlinePath, P as Point, k as SectionPathSegment } from './types-DmgX-iuD.js';
2
2
 
3
3
  declare function sectionPathSegmentEnd(segment: SectionPathSegment): Point;
4
4
  /** Validate finite, continuous closed-path geometry without trusting renderer
@@ -15,6 +15,9 @@ declare function transformSectionOutlinePath(path: SectionOutlinePath, transform
15
15
  * polygon section is closed. Wide, gently-angled corners round; sharp structural
16
16
  * corners stay crisp, so a rectangle drawn as a polygon is left untouched. */
17
17
  declare const DEFAULT_SECTION_CORNER_SMOOTHING = 45;
18
+ /** Interior-angle threshold for a 0..1 strength: flat at the default, then
19
+ * linear down to the full-strength threshold. Exported for the tests. */
20
+ declare function cornerSmoothingThresholdDeg(strength: number): number;
18
21
  /**
19
22
  * Build a smooth closed {@link SectionOutlinePath} by rounding the wide corners
20
23
  * of a hand-clicked polygon. The polygon stays authoritative — this is a purely
@@ -87,4 +90,4 @@ declare function relabelRows<T extends {
87
90
  label: string;
88
91
  }>(rows: T[], opts: RelabelOptions): T[];
89
92
 
90
- export { DEFAULT_SECTION_CORNER_SMOOTHING as D, MAX_EDGE_SAGITTA_RATIO as M, type RelabelOptions as R, type SectionOutlineDerivation as S, reverseSectionOutlinePath as a, sectionCornerSmoothingPath as b, sectionOutlinePathFrom as c, sectionPathSegmentEnd as d, toLetters as e, toRoman as f, transformSectionOutlinePath as g, translateSectionOutlinePath as h, indexLabel as i, relabelRows as r, sampleSectionOutlinePath as s, toBijectiveBase as t, validSectionOutlinePath as v };
93
+ export { DEFAULT_SECTION_CORNER_SMOOTHING as D, MAX_EDGE_SAGITTA_RATIO as M, type RelabelOptions as R, type SectionOutlineDerivation as S, reverseSectionOutlinePath as a, sectionCornerSmoothingPath as b, cornerSmoothingThresholdDeg as c, sectionOutlinePathFrom as d, sectionPathSegmentEnd as e, toLetters as f, toRoman as g, transformSectionOutlinePath as h, indexLabel as i, translateSectionOutlinePath as j, relabelRows as r, sampleSectionOutlinePath as s, toBijectiveBase as t, validSectionOutlinePath as v };
@@ -1,12 +1,16 @@
1
- import { A as AccessibilityType, S as SeatOverride, R as RowObject, a as SeatViewMetadata, L as LabelStyle, b as RectTableSide, C as ChartDoc, c as ChartObject, B as BoothObject, T as TableObject, P as Point, F as Floor, d as SectionObject, e as RectTableSeatCounts } from './types-Db9rXT14.js';
2
- import { S as SegmentedRowPlacement } from './segmentedRowModel-CO6Jogaa.js';
3
- import { E as ExpandedSeat } from './renderer-Bo9JzqMA.js';
1
+ import { A as AccessibilityType, S as SeatOverride, R as RowObject, a as SeatGlyphKind, b as SeatViewMetadata, L as LabelStyle, c as RectTableSide, C as ChartDoc, d as ChartObject, B as BoothObject, T as TableObject, P as Point, F as Floor, e as SectionObject, f as RectTableSeatCounts } from './types-DmgX-iuD.js';
2
+ import { S as SegmentedRowPlacement } from './segmentedRowModel-Cl3X8SKt.js';
3
+ import { E as ExpandedSeat } from './renderer-Bhc5CgOS.js';
4
4
 
5
5
  /**
6
6
  * Pure geometry helpers — no Konva, no DOM. Turns the parametric chart
7
7
  * document into concrete seat coordinates and computes bounding boxes.
8
8
  */
9
9
 
10
+ /** How far outside a table's body its seats sit. Exported so the Designer's
11
+ * table placement can reserve the chair ring as clearance from the one value
12
+ * that actually positions the chairs. */
13
+ declare const TABLE_SEAT_OFFSET = 16;
10
14
  /**
11
15
  * Expand a parametric row into seat positions.
12
16
  *
@@ -45,6 +49,8 @@ interface RowSeatSlot {
45
49
  accessibility: AccessibilityType[];
46
50
  wheelchairSpaceType?: SeatOverride['wheelchairSpaceType'];
47
51
  commercial?: RowObject['commercial'];
52
+ /** Explicit per-seat glyph override; absent = the category's glyph (Auto). */
53
+ glyph?: SeatGlyphKind;
48
54
  viewUrl?: string;
49
55
  viewMeta?: SeatViewMetadata;
50
56
  labelStyle?: LabelStyle;
@@ -214,4 +220,4 @@ declare function chartBounds(doc: ChartDoc): {
214
220
  height: number;
215
221
  };
216
222
 
217
- export { type ExpandChartOptions as E, type RowSeatSlot as R, type TableSeatSlot as T, allObjects as a, expandChart as b, chartBounds as c, expandRow as d, expandBooth as e, expandRowSlots as f, expandTable as g, expandTableSlots as h, floorObjects as i, floorOverviewTranslations as j, floorsOf as k, floorsShareFootprint as l, layoutFloorOverview as m, layoutFloorRings as n, objectCenter as o, owningSectionForObject as p, pointInPolygon as q, pointInPolygonWithHoles as r, polygonLabelPoint as s, rowInventoryCount as t, rowSeatPositions as u, stackFloors as v, tableInventoryCount as w, tableSeatCountsBySide as x, translateObject as y };
223
+ export { type ExpandChartOptions as E, type RowSeatSlot as R, TABLE_SEAT_OFFSET as T, type TableSeatSlot as a, allObjects as b, chartBounds as c, expandChart as d, expandBooth as e, expandRow as f, expandRowSlots as g, expandTable as h, expandTableSlots as i, floorObjects as j, floorOverviewTranslations as k, floorsOf as l, floorsShareFootprint as m, layoutFloorOverview as n, layoutFloorRings as o, objectCenter as p, owningSectionForObject as q, pointInPolygon as r, pointInPolygonWithHoles as s, polygonLabelPoint as t, rowInventoryCount as u, rowSeatPositions as v, stackFloors as w, tableInventoryCount as x, tableSeatCountsBySide as y, translateObject as z };
@@ -1,12 +1,16 @@
1
- import { A as AccessibilityType, S as SeatOverride, R as RowObject, a as SeatViewMetadata, L as LabelStyle, b as RectTableSide, C as ChartDoc, c as ChartObject, B as BoothObject, T as TableObject, P as Point, F as Floor, d as SectionObject, e as RectTableSeatCounts } from './types-Db9rXT14.cjs';
2
- import { S as SegmentedRowPlacement } from './segmentedRowModel-s157HmRp.cjs';
3
- import { E as ExpandedSeat } from './renderer-QnB3a1yh.cjs';
1
+ import { A as AccessibilityType, S as SeatOverride, R as RowObject, a as SeatGlyphKind, b as SeatViewMetadata, L as LabelStyle, c as RectTableSide, C as ChartDoc, d as ChartObject, B as BoothObject, T as TableObject, P as Point, F as Floor, e as SectionObject, f as RectTableSeatCounts } from './types-DmgX-iuD.cjs';
2
+ import { S as SegmentedRowPlacement } from './segmentedRowModel-BQYSdf7k.cjs';
3
+ import { E as ExpandedSeat } from './renderer-BNzVBOBW.cjs';
4
4
 
5
5
  /**
6
6
  * Pure geometry helpers — no Konva, no DOM. Turns the parametric chart
7
7
  * document into concrete seat coordinates and computes bounding boxes.
8
8
  */
9
9
 
10
+ /** How far outside a table's body its seats sit. Exported so the Designer's
11
+ * table placement can reserve the chair ring as clearance from the one value
12
+ * that actually positions the chairs. */
13
+ declare const TABLE_SEAT_OFFSET = 16;
10
14
  /**
11
15
  * Expand a parametric row into seat positions.
12
16
  *
@@ -45,6 +49,8 @@ interface RowSeatSlot {
45
49
  accessibility: AccessibilityType[];
46
50
  wheelchairSpaceType?: SeatOverride['wheelchairSpaceType'];
47
51
  commercial?: RowObject['commercial'];
52
+ /** Explicit per-seat glyph override; absent = the category's glyph (Auto). */
53
+ glyph?: SeatGlyphKind;
48
54
  viewUrl?: string;
49
55
  viewMeta?: SeatViewMetadata;
50
56
  labelStyle?: LabelStyle;
@@ -214,4 +220,4 @@ declare function chartBounds(doc: ChartDoc): {
214
220
  height: number;
215
221
  };
216
222
 
217
- export { type ExpandChartOptions as E, type RowSeatSlot as R, type TableSeatSlot as T, allObjects as a, expandChart as b, chartBounds as c, expandRow as d, expandBooth as e, expandRowSlots as f, expandTable as g, expandTableSlots as h, floorObjects as i, floorOverviewTranslations as j, floorsOf as k, floorsShareFootprint as l, layoutFloorOverview as m, layoutFloorRings as n, objectCenter as o, owningSectionForObject as p, pointInPolygon as q, pointInPolygonWithHoles as r, polygonLabelPoint as s, rowInventoryCount as t, rowSeatPositions as u, stackFloors as v, tableInventoryCount as w, tableSeatCountsBySide as x, translateObject as y };
223
+ export { type ExpandChartOptions as E, type RowSeatSlot as R, TABLE_SEAT_OFFSET as T, type TableSeatSlot as a, allObjects as b, chartBounds as c, expandChart as d, expandBooth as e, expandRow as f, expandRowSlots as g, expandTable as h, expandTableSlots as i, floorObjects as j, floorOverviewTranslations as k, floorsOf as l, floorsShareFootprint as m, layoutFloorOverview as n, layoutFloorRings as o, objectCenter as p, owningSectionForObject as q, pointInPolygon as r, pointInPolygonWithHoles as s, polygonLabelPoint as t, rowInventoryCount as u, rowSeatPositions as v, stackFloors as w, tableInventoryCount as x, tableSeatCountsBySide as y, translateObject as z };
@@ -1,4 +1,4 @@
1
- import { R as RendererQualityEvidence, a as RenderedFreeTextEvidence } from './renderer-Bo9JzqMA.js';
1
+ import { R as RendererQualityEvidence, a as RenderedFreeTextEvidence } from './renderer-Bhc5CgOS.js';
2
2
 
3
3
  declare const RENDERED_QUALITY_REPORT_VERSION = 3;
4
4
  type RenderedEvidenceState = 'overview' | 'interaction';
@@ -1,4 +1,4 @@
1
- import { R as RendererQualityEvidence, a as RenderedFreeTextEvidence } from './renderer-QnB3a1yh.cjs';
1
+ import { R as RendererQualityEvidence, a as RenderedFreeTextEvidence } from './renderer-BNzVBOBW.cjs';
2
2
 
3
3
  declare const RENDERED_QUALITY_REPORT_VERSION = 3;
4
4
  type RenderedEvidenceState = 'overview' | 'interaction';
@@ -1,4 +1,4 @@
1
- import { P as Point, A as AccessibilityType, f as SeatCommercialAttributes, a as SeatViewMetadata, g as ResolvedSeatConfidenceEvidence, L as LabelStyle, C as ChartDoc } from './types-Db9rXT14.cjs';
1
+ import { P as Point, A as AccessibilityType, g as SeatCommercialAttributes, b as SeatViewMetadata, h as ResolvedSeatConfidenceEvidence, L as LabelStyle, a as SeatGlyphKind, C as ChartDoc } from './types-DmgX-iuD.cjs';
2
2
 
3
3
  interface ExpandedSeat {
4
4
  /** Stable id: `${rowId}:${index}` */
@@ -40,6 +40,8 @@ interface ExpandedSeat {
40
40
  confidenceEvidence?: ResolvedSeatConfidenceEvidence;
41
41
  /** Per-seat label size/color override; absent = inherit the row/theme default. */
42
42
  labelStyle?: LabelStyle;
43
+ /** Explicit per-seat glyph override; absent = the category's glyph (Auto). */
44
+ glyph?: SeatGlyphKind;
43
45
  /**
44
46
  * Real-world eye height in metres above the focal/stage datum, resolved at
45
47
  * expand time from the owning section's `{height, rake}` + drawn depth (Phase B2).
@@ -409,6 +411,14 @@ interface ISeatmapRenderer {
409
411
  zoomIn(): void;
410
412
  /** Zoom out one step about the viewport center, clamped to the usual zoom bounds. */
411
413
  zoomOut(): void;
414
+ /**
415
+ * Walk the camera back ONE LEVEL rather than one factor: deeper than the
416
+ * focused section's frame → that frame ('section'); focused and already at
417
+ * the frame → 'venue' (the caller clears focus + card and fits); no focus at
418
+ * seat level → the sections rung ('sections'); otherwise the whole venue.
419
+ * Buyer "−" control. Optional: engines without it get the factor step.
420
+ */
421
+ zoomOutLevel?(): 'section' | 'venue' | 'sections';
412
422
  /** Individually status-managed seats/table-seats/booths; excludes GA capacity. */
413
423
  seatCount(): number;
414
424
  /** Seats/table-seats/booths plus the full capacity of rendered GA areas. */
@@ -1,4 +1,4 @@
1
- import { P as Point, A as AccessibilityType, f as SeatCommercialAttributes, a as SeatViewMetadata, g as ResolvedSeatConfidenceEvidence, L as LabelStyle, C as ChartDoc } from './types-Db9rXT14.js';
1
+ import { P as Point, A as AccessibilityType, g as SeatCommercialAttributes, b as SeatViewMetadata, h as ResolvedSeatConfidenceEvidence, L as LabelStyle, a as SeatGlyphKind, C as ChartDoc } from './types-DmgX-iuD.js';
2
2
 
3
3
  interface ExpandedSeat {
4
4
  /** Stable id: `${rowId}:${index}` */
@@ -40,6 +40,8 @@ interface ExpandedSeat {
40
40
  confidenceEvidence?: ResolvedSeatConfidenceEvidence;
41
41
  /** Per-seat label size/color override; absent = inherit the row/theme default. */
42
42
  labelStyle?: LabelStyle;
43
+ /** Explicit per-seat glyph override; absent = the category's glyph (Auto). */
44
+ glyph?: SeatGlyphKind;
43
45
  /**
44
46
  * Real-world eye height in metres above the focal/stage datum, resolved at
45
47
  * expand time from the owning section's `{height, rake}` + drawn depth (Phase B2).
@@ -409,6 +411,14 @@ interface ISeatmapRenderer {
409
411
  zoomIn(): void;
410
412
  /** Zoom out one step about the viewport center, clamped to the usual zoom bounds. */
411
413
  zoomOut(): void;
414
+ /**
415
+ * Walk the camera back ONE LEVEL rather than one factor: deeper than the
416
+ * focused section's frame → that frame ('section'); focused and already at
417
+ * the frame → 'venue' (the caller clears focus + card and fits); no focus at
418
+ * seat level → the sections rung ('sections'); otherwise the whole venue.
419
+ * Buyer "−" control. Optional: engines without it get the factor step.
420
+ */
421
+ zoomOutLevel?(): 'section' | 'venue' | 'sections';
412
422
  /** Individually status-managed seats/table-seats/booths; excludes GA capacity. */
413
423
  seatCount(): number;
414
424
  /** Seats/table-seats/booths plus the full capacity of rendered GA areas. */
@@ -1,4 +1,4 @@
1
- import { d as SectionObject, C as ChartDoc } from './types-Db9rXT14.js';
1
+ import { e as SectionObject, C as ChartDoc } from './types-DmgX-iuD.js';
2
2
 
3
3
  /**
4
4
  * Real-world scale primitives — the ONE place the app fixes chart-unit ↔ metre ↔
@@ -1,4 +1,4 @@
1
- import { d as SectionObject, C as ChartDoc } from './types-Db9rXT14.cjs';
1
+ import { e as SectionObject, C as ChartDoc } from './types-DmgX-iuD.cjs';
2
2
 
3
3
  /**
4
4
  * Real-world scale primitives — the ONE place the app fixes chart-unit ↔ metre ↔
@@ -1,4 +1,4 @@
1
- import { P as Point, R as RowObject, c as ChartObject } from './types-Db9rXT14.cjs';
1
+ import { P as Point, R as RowObject, d as ChartObject } from './types-DmgX-iuD.cjs';
2
2
 
3
3
  /**
4
4
  * The segmented-row model — one logical row made of several physical rows.
@@ -1,4 +1,4 @@
1
- import { P as Point, R as RowObject, c as ChartObject } from './types-Db9rXT14.js';
1
+ import { P as Point, R as RowObject, d as ChartObject } from './types-DmgX-iuD.js';
2
2
 
3
3
  /**
4
4
  * The segmented-row model — one logical row made of several physical rows.
@@ -1,5 +1,5 @@
1
- import { C as ChartDoc, G as GAAreaObject, k as GAInventorySegment, l as CategoryTier } from './types-Db9rXT14.js';
2
- import { E as ExpandedSeat } from './renderer-Bo9JzqMA.js';
1
+ import { C as ChartDoc, G as GAAreaObject, l as GAInventorySegment, m as CategoryTier } from './types-DmgX-iuD.js';
2
+ import { E as ExpandedSeat } from './renderer-Bhc5CgOS.js';
3
3
 
4
4
  declare const MAX_GA_CAPACITY = 100000;
5
5
  declare const MAX_EVENT_INVENTORY = 100000;
@@ -1,5 +1,5 @@
1
- import { C as ChartDoc, G as GAAreaObject, k as GAInventorySegment, l as CategoryTier } from './types-Db9rXT14.cjs';
2
- import { E as ExpandedSeat } from './renderer-QnB3a1yh.cjs';
1
+ import { C as ChartDoc, G as GAAreaObject, l as GAInventorySegment, m as CategoryTier } from './types-DmgX-iuD.cjs';
2
+ import { E as ExpandedSeat } from './renderer-BNzVBOBW.cjs';
3
3
 
4
4
  declare const MAX_GA_CAPACITY = 100000;
5
5
  declare const MAX_EVENT_INVENTORY = 100000;
@@ -292,6 +292,35 @@ interface ReferenceExtractProposal {
292
292
  };
293
293
  };
294
294
  }
295
+ /**
296
+ * The metadata-only match score for the From-image panel: how well the current
297
+ * draft covers the uploaded plan. `inkCoverage` counts EVERY section against
298
+ * the drawing's ink (provenance or not); the per-section statuses cover only
299
+ * sections whose source region still exists. Read-only; never MCP.
300
+ */
301
+ interface ReferenceMatchReport {
302
+ verdict: 'aligned' | 'review' | 'drift' | 'insufficient-evidence';
303
+ inkCoverage: {
304
+ inkPx: number;
305
+ coveredPx: number;
306
+ share: number;
307
+ };
308
+ geometry: {
309
+ areaIou: number;
310
+ boundaryP95Px: number;
311
+ } | null;
312
+ coverage: {
313
+ comparableSections: number;
314
+ chartSections: number;
315
+ sourceSemanticSections: number;
316
+ };
317
+ sections: Array<{
318
+ sectionId: string;
319
+ label: string;
320
+ status: 'aligned' | 'review' | 'drift';
321
+ }>;
322
+ warnings: string[];
323
+ }
295
324
  /**
296
325
  * The model-backed enrichments of an extract — printed names and edge-verified
297
326
  * suggested regions — run AFTER the deterministic proposal is returned and are
@@ -425,10 +454,22 @@ interface SectionOutlinePath {
425
454
  start: Point;
426
455
  segments: SectionPathSegment[];
427
456
  }
457
+ /**
458
+ * The shape a bookable seat is drawn as. Absent everywhere means `'circle'`,
459
+ * which is what every chart drew before glyphs existed. Paths, plain-language
460
+ * names and the resolution rule live in `core/render-assets/seatGlyphs`.
461
+ */
462
+ type SeatGlyphKind = 'circle' | 'theatre' | 'dining' | 'folding' | 'armchair' | 'recliner' | 'stool' | 'bench';
428
463
  interface Category {
429
464
  key: string;
430
465
  label: string;
431
466
  color: string;
467
+ /**
468
+ * Seat shape for every seat in this category (absent = circle). Colour says
469
+ * which tier a seat belongs to; the glyph says what kind of place it is, so a
470
+ * chart can read "Gold = theatre chair, Platinum = armchair" at a glance.
471
+ */
472
+ seatGlyph?: SeatGlyphKind;
432
473
  /** Base price — used when the category has no explicit tiers. */
433
474
  price?: number;
434
475
  /** Durable evidence for semantic/display facts proposed while converting a
@@ -617,6 +658,12 @@ interface SeatOverride {
617
658
  * internally and the legacy `label` externally for backwards compatibility. */
618
659
  displayLabel?: string;
619
660
  categoryKey?: string;
661
+ /**
662
+ * Seat shape for this one seat. Absent = Auto (the effective category's
663
+ * glyph). An explicit `'circle'` is a real override: it pins this seat back to
664
+ * a dot inside a category that draws chairs.
665
+ */
666
+ glyph?: SeatGlyphKind;
620
667
  /** @deprecated legacy flag — read as `['wheelchair']`; write `accessibility`. */
621
668
  accessible?: boolean;
622
669
  /** Accessibility accommodations of this seat (empty/absent = none). */
@@ -1539,4 +1586,4 @@ interface ChartDoc {
1539
1586
  confidenceEvidence?: SeatConfidenceEvidence;
1540
1587
  }
1541
1588
 
1542
- export { type ReferenceInventoryExclusionSource as $, type AccessibilityType as A, type BoothObject as B, type ChartDoc as C, type DecorImageObject as D, LABEL_STYLE_MAX_SIZE as E, type Floor as F, type GAAreaObject as G, LABEL_STYLE_MIN_SIZE as H, type LabelPresentation as I, type Physical3dEvidence as J, type RadialClearanceLayoutConstraint as K, type LabelStyle as L, type ReferenceAccessibilitySource as M, type ReferenceCalibration as N, type ObjectEditorState as O, type Point as P, type ReferenceCategorySource as Q, type RowObject as R, type SeatOverride as S, type TableObject as T, type ReferenceDerivedScale as U, type ReferenceEnrichmentStatus as V, type ReferenceExtractEmptyReason as W, type ReferenceExtractEnrichment as X, type ReferenceExtractInput as Y, type ReferenceExtractProposal as Z, type ReferenceExtractRegionSeats as _, type SeatViewMetadata as a, type ReferenceInventorySource as a0, type ReferenceScanProposal as a1, type ReferenceScanRowProposal as a2, type ReferenceScanSectionProposal as a3, type ReferenceSeatSeed as a4, type ReferenceSectionTraceBatchInput as a5, type ReferenceSectionTraceBatchProposal as a6, type ReferenceSectionTraceInput as a7, type ReferenceSectionTraceProposal as a8, SEAT_COMMERCIAL_MARKS as a9, SURROUNDINGS_SHAPE_ROLES as aa, type SeatCommercialMark as ab, type SeatCommercialMeta as ac, type SeatConfidenceCoverage as ad, type SeatConfidenceEvidence as ae, type SeatConfidenceModelLevel as af, type SeatConfidenceModeledTarget as ag, type SeatConfidenceRealityLevel as ah, type SelectionLayer as ai, type TextAlignment as aj, type TextBackground as ak, type TicketTierApplicability as al, type TicketTierEvidence as am, type TicketTierRestriction as an, type ZoneDef as ao, accessibilityMeta as ap, accessibilityRingColor as aq, layerOf as ar, seatCommercialMeta as as, type RectTableSide as b, type ChartObject as c, type SectionObject as d, type RectTableSeatCounts as e, type SeatCommercialAttributes as f, type ResolvedSeatConfidenceEvidence as g, type SeatViewCoverage as h, type SectionOutlinePath as i, type SectionPathSegment as j, type GAInventorySegment as k, type CategoryTier as l, type ChartReferenceImage as m, type ShapeLineCap as n, type ShapeLineEnding as o, type ShapeLineJoin as p, type ShapeObject as q, type CubicPath as r, type TextObject as s, ACCESSIBILITY_RING_COLOR as t, ACCESSIBILITY_TYPES as u, type AccessibilityMeta as v, type AuthoringObjectState as w, type Category as x, type ChartLayoutConstraint as y, type ChartTheme as z };
1589
+ export { type ReferenceExtractRegionSeats as $, type AccessibilityType as A, type BoothObject as B, type ChartDoc as C, type ChartTheme as D, type DecorImageObject as E, type Floor as F, type GAAreaObject as G, LABEL_STYLE_MAX_SIZE as H, LABEL_STYLE_MIN_SIZE as I, type LabelPresentation as J, type Physical3dEvidence as K, type LabelStyle as L, type RadialClearanceLayoutConstraint as M, type ReferenceAccessibilitySource as N, type ObjectEditorState as O, type Point as P, type ReferenceCalibration as Q, type RowObject as R, type SeatOverride as S, type TableObject as T, type ReferenceCategorySource as U, type ReferenceDerivedScale as V, type ReferenceEnrichmentStatus as W, type ReferenceExtractEmptyReason as X, type ReferenceExtractEnrichment as Y, type ReferenceExtractInput as Z, type ReferenceExtractProposal as _, type SeatGlyphKind as a, type ReferenceInventoryExclusionSource as a0, type ReferenceInventorySource as a1, type ReferenceMatchReport as a2, type ReferenceScanProposal as a3, type ReferenceScanRowProposal as a4, type ReferenceScanSectionProposal as a5, type ReferenceSeatSeed as a6, type ReferenceSectionTraceBatchInput as a7, type ReferenceSectionTraceBatchProposal as a8, type ReferenceSectionTraceInput as a9, type ReferenceSectionTraceProposal as aa, SEAT_COMMERCIAL_MARKS as ab, SURROUNDINGS_SHAPE_ROLES as ac, type SeatCommercialMark as ad, type SeatCommercialMeta as ae, type SeatConfidenceCoverage as af, type SeatConfidenceEvidence as ag, type SeatConfidenceModelLevel as ah, type SeatConfidenceModeledTarget as ai, type SeatConfidenceRealityLevel as aj, type SelectionLayer as ak, type TextAlignment as al, type TextBackground as am, type TicketTierApplicability as an, type TicketTierEvidence as ao, type TicketTierRestriction as ap, type ZoneDef as aq, accessibilityMeta as ar, accessibilityRingColor as as, layerOf as at, seatCommercialMeta as au, type SeatViewMetadata as b, type RectTableSide as c, type ChartObject as d, type SectionObject as e, type RectTableSeatCounts as f, type SeatCommercialAttributes as g, type ResolvedSeatConfidenceEvidence as h, type SeatViewCoverage as i, type SectionOutlinePath as j, type SectionPathSegment as k, type GAInventorySegment as l, type CategoryTier as m, type ChartReferenceImage as n, type Category as o, type ShapeLineCap as p, type ShapeLineEnding as q, type ShapeLineJoin as r, type ShapeObject as s, type CubicPath as t, type TextObject as u, ACCESSIBILITY_RING_COLOR as v, ACCESSIBILITY_TYPES as w, type AccessibilityMeta as x, type AuthoringObjectState as y, type ChartLayoutConstraint as z };
@@ -292,6 +292,35 @@ interface ReferenceExtractProposal {
292
292
  };
293
293
  };
294
294
  }
295
+ /**
296
+ * The metadata-only match score for the From-image panel: how well the current
297
+ * draft covers the uploaded plan. `inkCoverage` counts EVERY section against
298
+ * the drawing's ink (provenance or not); the per-section statuses cover only
299
+ * sections whose source region still exists. Read-only; never MCP.
300
+ */
301
+ interface ReferenceMatchReport {
302
+ verdict: 'aligned' | 'review' | 'drift' | 'insufficient-evidence';
303
+ inkCoverage: {
304
+ inkPx: number;
305
+ coveredPx: number;
306
+ share: number;
307
+ };
308
+ geometry: {
309
+ areaIou: number;
310
+ boundaryP95Px: number;
311
+ } | null;
312
+ coverage: {
313
+ comparableSections: number;
314
+ chartSections: number;
315
+ sourceSemanticSections: number;
316
+ };
317
+ sections: Array<{
318
+ sectionId: string;
319
+ label: string;
320
+ status: 'aligned' | 'review' | 'drift';
321
+ }>;
322
+ warnings: string[];
323
+ }
295
324
  /**
296
325
  * The model-backed enrichments of an extract — printed names and edge-verified
297
326
  * suggested regions — run AFTER the deterministic proposal is returned and are
@@ -425,10 +454,22 @@ interface SectionOutlinePath {
425
454
  start: Point;
426
455
  segments: SectionPathSegment[];
427
456
  }
457
+ /**
458
+ * The shape a bookable seat is drawn as. Absent everywhere means `'circle'`,
459
+ * which is what every chart drew before glyphs existed. Paths, plain-language
460
+ * names and the resolution rule live in `core/render-assets/seatGlyphs`.
461
+ */
462
+ type SeatGlyphKind = 'circle' | 'theatre' | 'dining' | 'folding' | 'armchair' | 'recliner' | 'stool' | 'bench';
428
463
  interface Category {
429
464
  key: string;
430
465
  label: string;
431
466
  color: string;
467
+ /**
468
+ * Seat shape for every seat in this category (absent = circle). Colour says
469
+ * which tier a seat belongs to; the glyph says what kind of place it is, so a
470
+ * chart can read "Gold = theatre chair, Platinum = armchair" at a glance.
471
+ */
472
+ seatGlyph?: SeatGlyphKind;
432
473
  /** Base price — used when the category has no explicit tiers. */
433
474
  price?: number;
434
475
  /** Durable evidence for semantic/display facts proposed while converting a
@@ -617,6 +658,12 @@ interface SeatOverride {
617
658
  * internally and the legacy `label` externally for backwards compatibility. */
618
659
  displayLabel?: string;
619
660
  categoryKey?: string;
661
+ /**
662
+ * Seat shape for this one seat. Absent = Auto (the effective category's
663
+ * glyph). An explicit `'circle'` is a real override: it pins this seat back to
664
+ * a dot inside a category that draws chairs.
665
+ */
666
+ glyph?: SeatGlyphKind;
620
667
  /** @deprecated legacy flag — read as `['wheelchair']`; write `accessibility`. */
621
668
  accessible?: boolean;
622
669
  /** Accessibility accommodations of this seat (empty/absent = none). */
@@ -1539,4 +1586,4 @@ interface ChartDoc {
1539
1586
  confidenceEvidence?: SeatConfidenceEvidence;
1540
1587
  }
1541
1588
 
1542
- export { type ReferenceInventoryExclusionSource as $, type AccessibilityType as A, type BoothObject as B, type ChartDoc as C, type DecorImageObject as D, LABEL_STYLE_MAX_SIZE as E, type Floor as F, type GAAreaObject as G, LABEL_STYLE_MIN_SIZE as H, type LabelPresentation as I, type Physical3dEvidence as J, type RadialClearanceLayoutConstraint as K, type LabelStyle as L, type ReferenceAccessibilitySource as M, type ReferenceCalibration as N, type ObjectEditorState as O, type Point as P, type ReferenceCategorySource as Q, type RowObject as R, type SeatOverride as S, type TableObject as T, type ReferenceDerivedScale as U, type ReferenceEnrichmentStatus as V, type ReferenceExtractEmptyReason as W, type ReferenceExtractEnrichment as X, type ReferenceExtractInput as Y, type ReferenceExtractProposal as Z, type ReferenceExtractRegionSeats as _, type SeatViewMetadata as a, type ReferenceInventorySource as a0, type ReferenceScanProposal as a1, type ReferenceScanRowProposal as a2, type ReferenceScanSectionProposal as a3, type ReferenceSeatSeed as a4, type ReferenceSectionTraceBatchInput as a5, type ReferenceSectionTraceBatchProposal as a6, type ReferenceSectionTraceInput as a7, type ReferenceSectionTraceProposal as a8, SEAT_COMMERCIAL_MARKS as a9, SURROUNDINGS_SHAPE_ROLES as aa, type SeatCommercialMark as ab, type SeatCommercialMeta as ac, type SeatConfidenceCoverage as ad, type SeatConfidenceEvidence as ae, type SeatConfidenceModelLevel as af, type SeatConfidenceModeledTarget as ag, type SeatConfidenceRealityLevel as ah, type SelectionLayer as ai, type TextAlignment as aj, type TextBackground as ak, type TicketTierApplicability as al, type TicketTierEvidence as am, type TicketTierRestriction as an, type ZoneDef as ao, accessibilityMeta as ap, accessibilityRingColor as aq, layerOf as ar, seatCommercialMeta as as, type RectTableSide as b, type ChartObject as c, type SectionObject as d, type RectTableSeatCounts as e, type SeatCommercialAttributes as f, type ResolvedSeatConfidenceEvidence as g, type SeatViewCoverage as h, type SectionOutlinePath as i, type SectionPathSegment as j, type GAInventorySegment as k, type CategoryTier as l, type ChartReferenceImage as m, type ShapeLineCap as n, type ShapeLineEnding as o, type ShapeLineJoin as p, type ShapeObject as q, type CubicPath as r, type TextObject as s, ACCESSIBILITY_RING_COLOR as t, ACCESSIBILITY_TYPES as u, type AccessibilityMeta as v, type AuthoringObjectState as w, type Category as x, type ChartLayoutConstraint as y, type ChartTheme as z };
1589
+ export { type ReferenceExtractRegionSeats as $, type AccessibilityType as A, type BoothObject as B, type ChartDoc as C, type ChartTheme as D, type DecorImageObject as E, type Floor as F, type GAAreaObject as G, LABEL_STYLE_MAX_SIZE as H, LABEL_STYLE_MIN_SIZE as I, type LabelPresentation as J, type Physical3dEvidence as K, type LabelStyle as L, type RadialClearanceLayoutConstraint as M, type ReferenceAccessibilitySource as N, type ObjectEditorState as O, type Point as P, type ReferenceCalibration as Q, type RowObject as R, type SeatOverride as S, type TableObject as T, type ReferenceCategorySource as U, type ReferenceDerivedScale as V, type ReferenceEnrichmentStatus as W, type ReferenceExtractEmptyReason as X, type ReferenceExtractEnrichment as Y, type ReferenceExtractInput as Z, type ReferenceExtractProposal as _, type SeatGlyphKind as a, type ReferenceInventoryExclusionSource as a0, type ReferenceInventorySource as a1, type ReferenceMatchReport as a2, type ReferenceScanProposal as a3, type ReferenceScanRowProposal as a4, type ReferenceScanSectionProposal as a5, type ReferenceSeatSeed as a6, type ReferenceSectionTraceBatchInput as a7, type ReferenceSectionTraceBatchProposal as a8, type ReferenceSectionTraceInput as a9, type ReferenceSectionTraceProposal as aa, SEAT_COMMERCIAL_MARKS as ab, SURROUNDINGS_SHAPE_ROLES as ac, type SeatCommercialMark as ad, type SeatCommercialMeta as ae, type SeatConfidenceCoverage as af, type SeatConfidenceEvidence as ag, type SeatConfidenceModelLevel as ah, type SeatConfidenceModeledTarget as ai, type SeatConfidenceRealityLevel as aj, type SelectionLayer as ak, type TextAlignment as al, type TextBackground as am, type TicketTierApplicability as an, type TicketTierEvidence as ao, type TicketTierRestriction as ap, type ZoneDef as aq, accessibilityMeta as ar, accessibilityRingColor as as, layerOf as at, seatCommercialMeta as au, type SeatViewMetadata as b, type RectTableSide as c, type ChartObject as d, type SectionObject as e, type RectTableSeatCounts as f, type SeatCommercialAttributes as g, type ResolvedSeatConfidenceEvidence as h, type SeatViewCoverage as i, type SectionOutlinePath as j, type SectionPathSegment as k, type GAInventorySegment as l, type CategoryTier as m, type ChartReferenceImage as n, type Category as o, type ShapeLineCap as p, type ShapeLineEnding as q, type ShapeLineJoin as r, type ShapeObject as s, type CubicPath as t, type TextObject as u, ACCESSIBILITY_RING_COLOR as v, ACCESSIBILITY_TYPES as w, type AccessibilityMeta as x, type AuthoringObjectState as y, type ChartLayoutConstraint as z };
@@ -1,4 +1,4 @@
1
- import { h as SeatViewCoverage } from '../../types-Db9rXT14.cjs';
1
+ import { i as SeatViewCoverage } from '../../types-DmgX-iuD.cjs';
2
2
 
3
3
  /**
4
4
  * Slice 3 hand-off — the DOM panorama overlay the fly-to-seat cinematic
@@ -1,4 +1,4 @@
1
- import { h as SeatViewCoverage } from '../../types-Db9rXT14.js';
1
+ import { i as SeatViewCoverage } from '../../types-DmgX-iuD.js';
2
2
 
3
3
  /**
4
4
  * Slice 3 hand-off — the DOM panorama overlay the fly-to-seat cinematic