@seatlayer/core 0.54.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 (61) hide show
  1. package/dist/{categoryInventory-B4xo7hE2.d.ts → categoryInventory-BwarniiK.d.ts} +1 -1
  2. package/dist/{categoryInventory-lRtu3VjD.d.cts → categoryInventory-D3qPwfKz.d.cts} +1 -1
  3. package/dist/chunk-6XJN4REG.js +1 -0
  4. package/dist/{chunk-3QLFGEQY.js → chunk-DNGP2HDT.js} +1 -1
  5. package/dist/{chunk-QUKWJQLR.js → chunk-HHM3PB66.js} +1 -1
  6. package/dist/{chunk-EYROIZGQ.js → chunk-PXWKSYCK.js} +1 -1
  7. package/dist/chunk-VI2CLV3Y.js +1 -0
  8. package/dist/core/chart-ops/index.cjs +1 -1
  9. package/dist/core/chart-ops/index.d.cts +4 -4
  10. package/dist/core/chart-ops/index.d.ts +4 -4
  11. package/dist/core/chart-ops/index.js +1 -1
  12. package/dist/core/inventory/index.cjs +1 -1
  13. package/dist/core/inventory/index.d.cts +4 -4
  14. package/dist/core/inventory/index.d.ts +4 -4
  15. package/dist/core/inventory/index.js +1 -1
  16. package/dist/core/layout/index.d.cts +4 -4
  17. package/dist/core/layout/index.d.ts +4 -4
  18. package/dist/core/quality/index.cjs +1 -1
  19. package/dist/core/quality/index.d.cts +3 -3
  20. package/dist/core/quality/index.d.ts +3 -3
  21. package/dist/core/quality/index.js +1 -1
  22. package/dist/core/render-assets/index.cjs +1 -1
  23. package/dist/core/render-assets/index.d.cts +1 -1
  24. package/dist/core/render-assets/index.d.ts +1 -1
  25. package/dist/core/render-assets/index.js +1 -1
  26. package/dist/core/seatConfidence.d.cts +1 -1
  27. package/dist/core/seatConfidence.d.ts +1 -1
  28. package/dist/core/sections/index.d.cts +5 -5
  29. package/dist/core/sections/index.d.ts +5 -5
  30. package/dist/{de-75NWRKC5.js → de-WPX4D3SY.js} +1 -1
  31. package/dist/{es-BM7EJ7PW.js → es-6KAJQVVX.js} +1 -1
  32. package/dist/{fr-HPXQHIB4.js → fr-5DTMRBN5.js} +1 -1
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.d.cts +57 -12
  35. package/dist/index.d.ts +57 -12
  36. package/dist/index.js +1 -1
  37. package/dist/{labeling-w8bl86cb.d.ts → labeling-BmCzW50y.d.ts} +1 -1
  38. package/dist/{labeling-CsPt1mC_.d.cts → labeling-VfJBEOn0.d.cts} +1 -1
  39. package/dist/{layout-B5UYbwnv.d.ts → layout-ClQkmixY.d.ts} +3 -3
  40. package/dist/{layout-YFmuxw_M.d.cts → layout-Dlv5bIf2.d.cts} +3 -3
  41. package/dist/{renderedQuality-DbZM034G.d.ts → renderedQuality-B3jgdgPO.d.ts} +1 -1
  42. package/dist/{renderedQuality-CugJarFp.d.cts → renderedQuality-bDkUOyBL.d.cts} +1 -1
  43. package/dist/{renderer-IBi9YKWR.d.ts → renderer-B_g-W_QB.d.ts} +4 -1
  44. package/dist/{renderer-DhUHFtsI.d.cts → renderer-DySMcKAR.d.cts} +4 -1
  45. package/dist/{sections-mLOZrGrI.d.ts → sections-DIzgtDjF.d.ts} +1 -1
  46. package/dist/{sections-B7cDF0Nq.d.cts → sections-Dna1nZgR.d.cts} +1 -1
  47. package/dist/{segmentedRowModel-CGoH684F.d.cts → segmentedRowModel-BNXEUeHp.d.cts} +1 -1
  48. package/dist/{segmentedRowModel-BPTnJ7Tz.d.ts → segmentedRowModel-COXw4GCh.d.ts} +1 -1
  49. package/dist/{ticketRestrictions-BwAebpSK.d.cts → ticketRestrictions-CzchbX_o.d.cts} +2 -2
  50. package/dist/{ticketRestrictions-ChHJwvTq.d.ts → ticketRestrictions-DaYOCpEw.d.ts} +2 -2
  51. package/dist/{types-COfJorq_.d.cts → types-DTSG6_Hq.d.cts} +5 -4
  52. package/dist/{types-COfJorq_.d.ts → types-DTSG6_Hq.d.ts} +5 -4
  53. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  54. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  55. package/dist/view3d/index.cjs +27 -27
  56. package/dist/view3d/index.d.cts +109 -3
  57. package/dist/view3d/index.d.ts +109 -3
  58. package/dist/view3d/index.js +27 -27
  59. package/package.json +1 -1
  60. package/dist/chunk-6LIPQU4G.js +0 -1
  61. package/dist/chunk-DDE7IOFT.js +0 -1
@@ -1,5 +1,5 @@
1
- import { C as ChartDoc } from '../types-COfJorq_.cjs';
2
- import { E as ExpandedSeat } from '../renderer-DhUHFtsI.cjs';
1
+ import { C as ChartDoc } from '../types-DTSG6_Hq.cjs';
2
+ import { E as ExpandedSeat } from '../renderer-DySMcKAR.cjs';
3
3
  import { SeatView } from './crossfade/panorama.cjs';
4
4
 
5
5
  /**
@@ -469,6 +469,106 @@ interface RenderLoopStats {
469
469
  idle: boolean;
470
470
  }
471
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
+
472
572
  /**
473
573
  * The public contract of the lazy venue-view chunk: what you mount it with
474
574
  * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
@@ -528,6 +628,9 @@ interface Venue3DOptions {
528
628
  * contain framing; validated for the buyer across `/dev/3d` fixtures.
529
629
  */
530
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;
531
634
  }
532
635
  interface Venue3DStats extends RenderLoopStats {
533
636
  drawCalls: number;
@@ -548,6 +651,9 @@ interface Venue3DHandle {
548
651
  focusOverview(): void;
549
652
  resize(): void;
550
653
  stats(): Venue3DStats;
654
+ /** Machine-readable evidence from the exact parked WebGL frame and DOM labels. */
655
+ getQualityEvidence(): Venue3DQualityEvidence;
656
+ getQualityReport(): Venue3DQualityReport;
551
657
  loseContextForTest(): void;
552
658
  /** Test hook: force (or clear) the reduced-motion path. */
553
659
  setReducedMotionForTest(value: boolean | null): void;
@@ -609,4 +715,4 @@ interface Venue3DHandle {
609
715
 
610
716
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
611
717
 
612
- 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,5 +1,5 @@
1
- import { C as ChartDoc } from '../types-COfJorq_.js';
2
- import { E as ExpandedSeat } from '../renderer-IBi9YKWR.js';
1
+ import { C as ChartDoc } from '../types-DTSG6_Hq.js';
2
+ import { E as ExpandedSeat } from '../renderer-B_g-W_QB.js';
3
3
  import { SeatView } from './crossfade/panorama.js';
4
4
 
5
5
  /**
@@ -469,6 +469,106 @@ interface RenderLoopStats {
469
469
  idle: boolean;
470
470
  }
471
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
+
472
572
  /**
473
573
  * The public contract of the lazy venue-view chunk: what you mount it with
474
574
  * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
@@ -528,6 +628,9 @@ interface Venue3DOptions {
528
628
  * contain framing; validated for the buyer across `/dev/3d` fixtures.
529
629
  */
530
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;
531
634
  }
532
635
  interface Venue3DStats extends RenderLoopStats {
533
636
  drawCalls: number;
@@ -548,6 +651,9 @@ interface Venue3DHandle {
548
651
  focusOverview(): void;
549
652
  resize(): void;
550
653
  stats(): Venue3DStats;
654
+ /** Machine-readable evidence from the exact parked WebGL frame and DOM labels. */
655
+ getQualityEvidence(): Venue3DQualityEvidence;
656
+ getQualityReport(): Venue3DQualityReport;
551
657
  loseContextForTest(): void;
552
658
  /** Test hook: force (or clear) the reduced-motion path. */
553
659
  setReducedMotionForTest(value: boolean | null): void;
@@ -609,4 +715,4 @@ interface Venue3DHandle {
609
715
 
610
716
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
611
717
 
612
- 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 };