@seatlayer/core 0.53.0 → 0.55.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 (78) hide show
  1. package/README.md +2 -2
  2. package/dist/categoryInventory-BwarniiK.d.ts +109 -0
  3. package/dist/categoryInventory-D3qPwfKz.d.cts +109 -0
  4. package/dist/chunk-55NOSZK5.js +1 -0
  5. package/dist/chunk-6VTTBC5F.js +1 -0
  6. package/dist/chunk-6XJN4REG.js +1 -0
  7. package/dist/chunk-7PT7OQUO.js +1 -0
  8. package/dist/chunk-AQKYUJBX.js +1 -0
  9. package/dist/chunk-CXF32VPG.js +1 -0
  10. package/dist/chunk-DNGP2HDT.js +1 -0
  11. package/dist/chunk-EQM4FFN5.js +1 -0
  12. package/dist/chunk-HHM3PB66.js +1 -0
  13. package/dist/chunk-PXWKSYCK.js +1 -0
  14. package/dist/chunk-VDZ24QVV.js +1 -0
  15. package/dist/chunk-VI2CLV3Y.js +1 -0
  16. package/dist/core/chart-ops/index.cjs +1 -0
  17. package/dist/core/chart-ops/index.d.cts +1235 -0
  18. package/dist/core/chart-ops/index.d.ts +1235 -0
  19. package/dist/core/chart-ops/index.js +1 -0
  20. package/dist/core/color.cjs +1 -0
  21. package/dist/core/color.d.cts +192 -0
  22. package/dist/core/color.d.ts +192 -0
  23. package/dist/core/color.js +1 -0
  24. package/dist/core/inventory/index.cjs +1 -0
  25. package/dist/core/inventory/index.d.cts +209 -0
  26. package/dist/core/inventory/index.d.ts +209 -0
  27. package/dist/core/inventory/index.js +1 -0
  28. package/dist/core/layout/index.cjs +1 -0
  29. package/dist/core/layout/index.d.cts +376 -0
  30. package/dist/core/layout/index.d.ts +376 -0
  31. package/dist/core/layout/index.js +1 -0
  32. package/dist/core/quality/index.cjs +1 -0
  33. package/dist/core/quality/index.d.cts +132 -0
  34. package/dist/core/quality/index.d.ts +132 -0
  35. package/dist/core/quality/index.js +1 -0
  36. package/dist/core/render-assets/index.cjs +1 -0
  37. package/dist/core/render-assets/index.d.cts +99 -0
  38. package/dist/core/render-assets/index.d.ts +99 -0
  39. package/dist/core/render-assets/index.js +1 -0
  40. package/dist/core/seatConfidence.cjs +1 -1
  41. package/dist/core/seatConfidence.d.cts +1 -1
  42. package/dist/core/seatConfidence.d.ts +1 -1
  43. package/dist/core/seatConfidence.js +1 -1
  44. package/dist/core/sections/index.cjs +1 -0
  45. package/dist/core/sections/index.d.cts +346 -0
  46. package/dist/core/sections/index.d.ts +346 -0
  47. package/dist/core/sections/index.js +1 -0
  48. package/dist/{de-75NWRKC5.js → de-WPX4D3SY.js} +1 -1
  49. package/dist/{es-BM7EJ7PW.js → es-6KAJQVVX.js} +1 -1
  50. package/dist/{fr-HPXQHIB4.js → fr-5DTMRBN5.js} +1 -1
  51. package/dist/index.cjs +1 -1
  52. package/dist/index.d.cts +85 -534
  53. package/dist/index.d.ts +85 -534
  54. package/dist/index.js +1 -1
  55. package/dist/labeling-BmCzW50y.d.ts +90 -0
  56. package/dist/labeling-VfJBEOn0.d.cts +90 -0
  57. package/dist/layout-ClQkmixY.d.ts +181 -0
  58. package/dist/layout-Dlv5bIf2.d.cts +181 -0
  59. package/dist/renderedQuality-B3jgdgPO.d.ts +113 -0
  60. package/dist/renderedQuality-bDkUOyBL.d.cts +113 -0
  61. package/dist/renderer-B_g-W_QB.d.ts +534 -0
  62. package/dist/renderer-DySMcKAR.d.cts +534 -0
  63. package/dist/sections-DIzgtDjF.d.ts +123 -0
  64. package/dist/sections-Dna1nZgR.d.cts +123 -0
  65. package/dist/segmentedRowModel-BNXEUeHp.d.cts +75 -0
  66. package/dist/segmentedRowModel-COXw4GCh.d.ts +75 -0
  67. package/dist/ticketRestrictions-CzchbX_o.d.cts +72 -0
  68. package/dist/ticketRestrictions-DaYOCpEw.d.ts +72 -0
  69. package/dist/{types-tLOunI-B.d.cts → types-DTSG6_Hq.d.cts} +238 -761
  70. package/dist/{types-tLOunI-B.d.ts → types-DTSG6_Hq.d.ts} +238 -761
  71. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  72. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  73. package/dist/view3d/index.cjs +27 -27
  74. package/dist/view3d/index.d.cts +109 -2
  75. package/dist/view3d/index.d.ts +109 -2
  76. package/dist/view3d/index.js +26 -26
  77. package/package.json +94 -5
  78. package/dist/chunk-54A7LIL5.js +0 -1
@@ -1,4 +1,5 @@
1
- import { C as ChartDoc, E as ExpandedSeat } from '../types-tLOunI-B.cjs';
1
+ import { C as ChartDoc } from '../types-DTSG6_Hq.cjs';
2
+ import { E as ExpandedSeat } from '../renderer-DySMcKAR.cjs';
2
3
  import { SeatView } from './crossfade/panorama.cjs';
3
4
 
4
5
  /**
@@ -468,6 +469,106 @@ interface RenderLoopStats {
468
469
  idle: boolean;
469
470
  }
470
471
 
472
+ declare const VENUE3D_QUALITY_REPORT_VERSION = 1;
473
+ interface Venue3DLabelEvidence {
474
+ id: string;
475
+ kind: LabelKind;
476
+ text: string;
477
+ visible: boolean;
478
+ renderedFontPx: number;
479
+ contrast: number;
480
+ screenBox?: {
481
+ x: number;
482
+ y: number;
483
+ width: number;
484
+ height: number;
485
+ };
486
+ }
487
+ interface Venue3DFramingEvidence {
488
+ /** Visible, viewport-clipped venue box in CSS pixels. */
489
+ box: {
490
+ x: number;
491
+ y: number;
492
+ width: number;
493
+ height: number;
494
+ };
495
+ horizontalFillRatio: number;
496
+ verticalFillRatio: number;
497
+ visibleAreaRatio: number;
498
+ clippedEdges: Array<'top' | 'right' | 'bottom' | 'left'>;
499
+ }
500
+ interface Venue3DQualityEvidence {
501
+ viewport: {
502
+ width: number;
503
+ height: number;
504
+ };
505
+ context: {
506
+ webgl2: boolean;
507
+ lost: boolean;
508
+ };
509
+ frame: {
510
+ rendered: number;
511
+ idle: boolean;
512
+ };
513
+ camera: {
514
+ position: [number, number, number];
515
+ distance: number;
516
+ verticalFovDeg: number;
517
+ };
518
+ scene: {
519
+ seatCount: number;
520
+ floorCount: number;
521
+ zoneCount: number;
522
+ sectionCount: number;
523
+ authoredRelief: boolean;
524
+ renderedVerticalSpanM: number;
525
+ projectedReliefPx: number;
526
+ };
527
+ labels: Venue3DLabelEvidence[];
528
+ /** Measured for review; promotion thresholds remain an owner decision. */
529
+ framing?: Venue3DFramingEvidence;
530
+ }
531
+ type Venue3DQualityFindingCode = 'webgl2-unavailable' | 'context-lost' | 'frame-not-stable' | 'viewport-empty' | 'camera-invalid' | 'authored-relief-not-visible' | 'hierarchy-label-missing' | 'hierarchy-label-undersized' | 'hierarchy-label-contrast-low' | 'hierarchy-label-collision';
532
+ interface Venue3DQualityFinding {
533
+ code: Venue3DQualityFindingCode;
534
+ message: string;
535
+ count: number;
536
+ samples: Array<{
537
+ primaryId: string;
538
+ primaryLabel: string;
539
+ secondaryId?: string;
540
+ measured?: number;
541
+ minimum?: number;
542
+ }>;
543
+ }
544
+ interface Venue3DQualityReport {
545
+ version: typeof VENUE3D_QUALITY_REPORT_VERSION;
546
+ state: 'venue3d';
547
+ passed: boolean;
548
+ resolvedRules: string[];
549
+ viewport: Venue3DQualityEvidence['viewport'];
550
+ context: Venue3DQualityEvidence['context'];
551
+ frame: Venue3DQualityEvidence['frame'];
552
+ camera: Venue3DQualityEvidence['camera'];
553
+ scene: Venue3DQualityEvidence['scene'];
554
+ composition: {
555
+ visibleLabels: Array<{
556
+ id: string;
557
+ kind: LabelKind;
558
+ text: string;
559
+ }>;
560
+ framing?: Venue3DFramingEvidence;
561
+ };
562
+ metrics: {
563
+ minimumHierarchyFontPx: number | null;
564
+ minimumHierarchyContrast: number | null;
565
+ projectedReliefPx: number;
566
+ };
567
+ findings: Venue3DQualityFinding[];
568
+ }
569
+ /** Inspect the actual parked WebGL scene, projected camera, and DOM label overlay. */
570
+ declare function inspectVenue3DQualityEvidence(evidence: Venue3DQualityEvidence): Venue3DQualityReport;
571
+
471
572
  /**
472
573
  * The public contract of the lazy venue-view chunk: what you mount it with
473
574
  * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
@@ -527,6 +628,9 @@ interface Venue3DOptions {
527
628
  * contain framing; validated for the buyer across `/dev/3d` fixtures.
528
629
  */
529
630
  portraitOverviewCrop?: boolean;
631
+ /** Start on the final overview pose without the decorative stand-up intro.
632
+ * Intended for deterministic rendered review and screenshot capture. */
633
+ skipInitialOverviewAnimation?: boolean;
530
634
  }
531
635
  interface Venue3DStats extends RenderLoopStats {
532
636
  drawCalls: number;
@@ -547,6 +651,9 @@ interface Venue3DHandle {
547
651
  focusOverview(): void;
548
652
  resize(): void;
549
653
  stats(): Venue3DStats;
654
+ /** Machine-readable evidence from the exact parked WebGL frame and DOM labels. */
655
+ getQualityEvidence(): Venue3DQualityEvidence;
656
+ getQualityReport(): Venue3DQualityReport;
550
657
  loseContextForTest(): void;
551
658
  /** Test hook: force (or clear) the reduced-motion path. */
552
659
  setReducedMotionForTest(value: boolean | null): void;
@@ -608,4 +715,4 @@ interface Venue3DHandle {
608
715
 
609
716
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
610
717
 
611
- export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DStats, buildSceneModel, mountVenue3D, prepareVenue3D };
718
+ export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, VENUE3D_QUALITY_REPORT_VERSION, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DQualityEvidence, type Venue3DQualityReport, type Venue3DStats, buildSceneModel, inspectVenue3DQualityEvidence, mountVenue3D, prepareVenue3D };
@@ -1,4 +1,5 @@
1
- import { C as ChartDoc, E as ExpandedSeat } from '../types-tLOunI-B.js';
1
+ import { C as ChartDoc } from '../types-DTSG6_Hq.js';
2
+ import { E as ExpandedSeat } from '../renderer-B_g-W_QB.js';
2
3
  import { SeatView } from './crossfade/panorama.js';
3
4
 
4
5
  /**
@@ -468,6 +469,106 @@ interface RenderLoopStats {
468
469
  idle: boolean;
469
470
  }
470
471
 
472
+ declare const VENUE3D_QUALITY_REPORT_VERSION = 1;
473
+ interface Venue3DLabelEvidence {
474
+ id: string;
475
+ kind: LabelKind;
476
+ text: string;
477
+ visible: boolean;
478
+ renderedFontPx: number;
479
+ contrast: number;
480
+ screenBox?: {
481
+ x: number;
482
+ y: number;
483
+ width: number;
484
+ height: number;
485
+ };
486
+ }
487
+ interface Venue3DFramingEvidence {
488
+ /** Visible, viewport-clipped venue box in CSS pixels. */
489
+ box: {
490
+ x: number;
491
+ y: number;
492
+ width: number;
493
+ height: number;
494
+ };
495
+ horizontalFillRatio: number;
496
+ verticalFillRatio: number;
497
+ visibleAreaRatio: number;
498
+ clippedEdges: Array<'top' | 'right' | 'bottom' | 'left'>;
499
+ }
500
+ interface Venue3DQualityEvidence {
501
+ viewport: {
502
+ width: number;
503
+ height: number;
504
+ };
505
+ context: {
506
+ webgl2: boolean;
507
+ lost: boolean;
508
+ };
509
+ frame: {
510
+ rendered: number;
511
+ idle: boolean;
512
+ };
513
+ camera: {
514
+ position: [number, number, number];
515
+ distance: number;
516
+ verticalFovDeg: number;
517
+ };
518
+ scene: {
519
+ seatCount: number;
520
+ floorCount: number;
521
+ zoneCount: number;
522
+ sectionCount: number;
523
+ authoredRelief: boolean;
524
+ renderedVerticalSpanM: number;
525
+ projectedReliefPx: number;
526
+ };
527
+ labels: Venue3DLabelEvidence[];
528
+ /** Measured for review; promotion thresholds remain an owner decision. */
529
+ framing?: Venue3DFramingEvidence;
530
+ }
531
+ type Venue3DQualityFindingCode = 'webgl2-unavailable' | 'context-lost' | 'frame-not-stable' | 'viewport-empty' | 'camera-invalid' | 'authored-relief-not-visible' | 'hierarchy-label-missing' | 'hierarchy-label-undersized' | 'hierarchy-label-contrast-low' | 'hierarchy-label-collision';
532
+ interface Venue3DQualityFinding {
533
+ code: Venue3DQualityFindingCode;
534
+ message: string;
535
+ count: number;
536
+ samples: Array<{
537
+ primaryId: string;
538
+ primaryLabel: string;
539
+ secondaryId?: string;
540
+ measured?: number;
541
+ minimum?: number;
542
+ }>;
543
+ }
544
+ interface Venue3DQualityReport {
545
+ version: typeof VENUE3D_QUALITY_REPORT_VERSION;
546
+ state: 'venue3d';
547
+ passed: boolean;
548
+ resolvedRules: string[];
549
+ viewport: Venue3DQualityEvidence['viewport'];
550
+ context: Venue3DQualityEvidence['context'];
551
+ frame: Venue3DQualityEvidence['frame'];
552
+ camera: Venue3DQualityEvidence['camera'];
553
+ scene: Venue3DQualityEvidence['scene'];
554
+ composition: {
555
+ visibleLabels: Array<{
556
+ id: string;
557
+ kind: LabelKind;
558
+ text: string;
559
+ }>;
560
+ framing?: Venue3DFramingEvidence;
561
+ };
562
+ metrics: {
563
+ minimumHierarchyFontPx: number | null;
564
+ minimumHierarchyContrast: number | null;
565
+ projectedReliefPx: number;
566
+ };
567
+ findings: Venue3DQualityFinding[];
568
+ }
569
+ /** Inspect the actual parked WebGL scene, projected camera, and DOM label overlay. */
570
+ declare function inspectVenue3DQualityEvidence(evidence: Venue3DQualityEvidence): Venue3DQualityReport;
571
+
471
572
  /**
472
573
  * The public contract of the lazy venue-view chunk: what you mount it with
473
574
  * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
@@ -527,6 +628,9 @@ interface Venue3DOptions {
527
628
  * contain framing; validated for the buyer across `/dev/3d` fixtures.
528
629
  */
529
630
  portraitOverviewCrop?: boolean;
631
+ /** Start on the final overview pose without the decorative stand-up intro.
632
+ * Intended for deterministic rendered review and screenshot capture. */
633
+ skipInitialOverviewAnimation?: boolean;
530
634
  }
531
635
  interface Venue3DStats extends RenderLoopStats {
532
636
  drawCalls: number;
@@ -547,6 +651,9 @@ interface Venue3DHandle {
547
651
  focusOverview(): void;
548
652
  resize(): void;
549
653
  stats(): Venue3DStats;
654
+ /** Machine-readable evidence from the exact parked WebGL frame and DOM labels. */
655
+ getQualityEvidence(): Venue3DQualityEvidence;
656
+ getQualityReport(): Venue3DQualityReport;
550
657
  loseContextForTest(): void;
551
658
  /** Test hook: force (or clear) the reduced-motion path. */
552
659
  setReducedMotionForTest(value: boolean | null): void;
@@ -608,4 +715,4 @@ interface Venue3DHandle {
608
715
 
609
716
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
610
717
 
611
- export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DStats, buildSceneModel, mountVenue3D, prepareVenue3D };
718
+ export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, VENUE3D_QUALITY_REPORT_VERSION, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DQualityEvidence, type Venue3DQualityReport, type Venue3DStats, buildSceneModel, inspectVenue3DQualityEvidence, mountVenue3D, prepareVenue3D };