@seatlayer/core 0.52.0 → 0.54.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 (110) hide show
  1. package/LICENSE +16 -17
  2. package/README.md +8 -18
  3. package/dist/categoryInventory-B4xo7hE2.d.ts +109 -0
  4. package/dist/categoryInventory-lRtu3VjD.d.cts +109 -0
  5. package/dist/chunk-3QLFGEQY.js +1 -0
  6. package/dist/chunk-55NOSZK5.js +1 -0
  7. package/dist/chunk-6LIPQU4G.js +1 -0
  8. package/dist/chunk-6VTTBC5F.js +1 -0
  9. package/dist/chunk-7PT7OQUO.js +1 -0
  10. package/dist/chunk-AQKYUJBX.js +1 -0
  11. package/dist/chunk-CXF32VPG.js +1 -0
  12. package/dist/chunk-DDE7IOFT.js +1 -0
  13. package/dist/chunk-EQM4FFN5.js +1 -0
  14. package/dist/chunk-EYROIZGQ.js +1 -0
  15. package/dist/chunk-IJI4WU57.js +1 -0
  16. package/dist/chunk-QUKWJQLR.js +1 -0
  17. package/dist/chunk-VDZ24QVV.js +1 -0
  18. package/dist/chunk-XPPT3OGQ.js +1 -0
  19. package/dist/core/chart-ops/index.cjs +1 -0
  20. package/dist/core/chart-ops/index.d.cts +1235 -0
  21. package/dist/core/chart-ops/index.d.ts +1235 -0
  22. package/dist/core/chart-ops/index.js +1 -0
  23. package/dist/core/color.cjs +1 -0
  24. package/dist/core/color.d.cts +192 -0
  25. package/dist/core/color.d.ts +192 -0
  26. package/dist/core/color.js +1 -0
  27. package/dist/core/inventory/index.cjs +1 -0
  28. package/dist/core/inventory/index.d.cts +209 -0
  29. package/dist/core/inventory/index.d.ts +209 -0
  30. package/dist/core/inventory/index.js +1 -0
  31. package/dist/core/layout/index.cjs +1 -0
  32. package/dist/core/layout/index.d.cts +376 -0
  33. package/dist/core/layout/index.d.ts +376 -0
  34. package/dist/core/layout/index.js +1 -0
  35. package/dist/core/quality/index.cjs +1 -0
  36. package/dist/core/quality/index.d.cts +132 -0
  37. package/dist/core/quality/index.d.ts +132 -0
  38. package/dist/core/quality/index.js +1 -0
  39. package/dist/core/render-assets/index.cjs +1 -0
  40. package/dist/core/render-assets/index.d.cts +99 -0
  41. package/dist/core/render-assets/index.d.ts +99 -0
  42. package/dist/core/render-assets/index.js +1 -0
  43. package/dist/core/seatConfidence.cjs +1 -76
  44. package/dist/core/seatConfidence.d.cts +1 -1
  45. package/dist/core/seatConfidence.d.ts +1 -1
  46. package/dist/core/seatConfidence.js +1 -51
  47. package/dist/core/sections/index.cjs +1 -0
  48. package/dist/core/sections/index.d.cts +346 -0
  49. package/dist/core/sections/index.d.ts +346 -0
  50. package/dist/core/sections/index.js +1 -0
  51. package/dist/de-75NWRKC5.js +1 -0
  52. package/dist/es-BM7EJ7PW.js +1 -0
  53. package/dist/fr-HPXQHIB4.js +1 -0
  54. package/dist/index.cjs +1 -12717
  55. package/dist/index.d.cts +71 -580
  56. package/dist/index.d.ts +71 -580
  57. package/dist/index.js +1 -10235
  58. package/dist/labeling-CsPt1mC_.d.cts +90 -0
  59. package/dist/labeling-w8bl86cb.d.ts +90 -0
  60. package/dist/layout-B5UYbwnv.d.ts +181 -0
  61. package/dist/layout-YFmuxw_M.d.cts +181 -0
  62. package/dist/picker/minimapGeometry.cjs +1 -80
  63. package/dist/picker/minimapGeometry.js +1 -52
  64. package/dist/renderedQuality-CugJarFp.d.cts +113 -0
  65. package/dist/renderedQuality-DbZM034G.d.ts +113 -0
  66. package/dist/renderer-DhUHFtsI.d.cts +531 -0
  67. package/dist/renderer-IBi9YKWR.d.ts +531 -0
  68. package/dist/sections-B7cDF0Nq.d.cts +123 -0
  69. package/dist/sections-mLOZrGrI.d.ts +123 -0
  70. package/dist/segmentedRowModel-BPTnJ7Tz.d.ts +75 -0
  71. package/dist/segmentedRowModel-CGoH684F.d.cts +75 -0
  72. package/dist/ticketRestrictions-BwAebpSK.d.cts +72 -0
  73. package/dist/ticketRestrictions-ChHJwvTq.d.ts +72 -0
  74. package/dist/{types-tLOunI-B.d.cts → types-COfJorq_.d.cts} +233 -757
  75. package/dist/{types-tLOunI-B.d.ts → types-COfJorq_.d.ts} +233 -757
  76. package/dist/view/panoramaDelivery.cjs +1 -126
  77. package/dist/view/panoramaDelivery.js +1 -17
  78. package/dist/view3d/crossfade/panorama.cjs +1 -459
  79. package/dist/view3d/crossfade/panorama.d.cts +2 -4
  80. package/dist/view3d/crossfade/panorama.d.ts +2 -4
  81. package/dist/view3d/crossfade/panorama.js +1 -30
  82. package/dist/view3d/index.cjs +27 -7929
  83. package/dist/view3d/index.d.cts +64 -22
  84. package/dist/view3d/index.d.ts +64 -22
  85. package/dist/view3d/index.js +27 -7062
  86. package/package.json +95 -11
  87. package/dist/chunk-AZODENEL.js +0 -97
  88. package/dist/chunk-AZODENEL.js.map +0 -1
  89. package/dist/chunk-BE3F7CT3.js +0 -341
  90. package/dist/chunk-BE3F7CT3.js.map +0 -1
  91. package/dist/chunk-UID7KN44.js +0 -1569
  92. package/dist/chunk-UID7KN44.js.map +0 -1
  93. package/dist/core/seatConfidence.cjs.map +0 -1
  94. package/dist/core/seatConfidence.js.map +0 -1
  95. package/dist/de-YGODYJ3E.js +0 -292
  96. package/dist/de-YGODYJ3E.js.map +0 -1
  97. package/dist/es-VMBTGVFQ.js +0 -292
  98. package/dist/es-VMBTGVFQ.js.map +0 -1
  99. package/dist/fr-SLBE2ULB.js +0 -292
  100. package/dist/fr-SLBE2ULB.js.map +0 -1
  101. package/dist/index.cjs.map +0 -1
  102. package/dist/index.js.map +0 -1
  103. package/dist/picker/minimapGeometry.cjs.map +0 -1
  104. package/dist/picker/minimapGeometry.js.map +0 -1
  105. package/dist/view/panoramaDelivery.cjs.map +0 -1
  106. package/dist/view/panoramaDelivery.js.map +0 -1
  107. package/dist/view3d/crossfade/panorama.cjs.map +0 -1
  108. package/dist/view3d/crossfade/panorama.js.map +0 -1
  109. package/dist/view3d/index.cjs.map +0 -1
  110. package/dist/view3d/index.js.map +0 -1
@@ -1,18 +1,7 @@
1
- import { C as ChartDoc, E as ExpandedSeat } from '../types-tLOunI-B.cjs';
1
+ import { C as ChartDoc } from '../types-COfJorq_.cjs';
2
+ import { E as ExpandedSeat } from '../renderer-DhUHFtsI.cjs';
2
3
  import { SeatView } from './crossfade/panorama.cjs';
3
4
 
4
- /**
5
- * Dirty-flag render loop. A frame is drawn only while the camera is moving /
6
- * damping or an availability update arrived; when idle, no rAF is scheduled at
7
- * all (zero CPU/GPU when parked). Tracks an FPS EMA over frames actually
8
- * rendered — it reads as "idle" when nothing is scheduled.
9
- */
10
- interface RenderLoopStats {
11
- fps: number;
12
- rendered: number;
13
- idle: boolean;
14
- }
15
-
16
5
  /**
17
6
  * view3d palette + seat-state model — the single source of colour truth for the
18
7
  * OGL venue view. Pure data (no GPU, no DOM) so the scene builder and the unit
@@ -21,6 +10,7 @@ interface RenderLoopStats {
21
10
  * Look brief (docs/3d-usp-strategy §3): desaturated cool greys for structure,
22
11
  * one warm accent for the stage, availability colours only on seats.
23
12
  */
13
+
24
14
  type SeatState3D = 'available' | 'held' | 'sold' | 'selected' | 'dimmed';
25
15
  type RGB = [number, number, number];
26
16
  /** Structure palette — cool desaturated greys + one warm stage accent. */
@@ -398,6 +388,34 @@ interface SceneModelInput {
398
388
  /** Optional initial per-seat state (default all available). */
399
389
  initialState?: (seat: ExpandedSeat) => SeatState3D;
400
390
  }
391
+
392
+ /**
393
+ * The JS-side source of truth for the 3D scene — a pure, GPU-free description
394
+ * built once from the chart's existing height contract. Everything the renderer
395
+ * uploads (merged solid geometry, the instanced seat cloud, camera-framing
396
+ * bounds, the seat-state colour LUT) is derived here, so it survives a WebGL
397
+ * context loss: on `webglcontextrestored` the renderer simply re-uploads from
398
+ * this model without recomputing anything.
399
+ *
400
+ * Feeds 100% from `sectionGeometry` / `Floor.baseHeightM` / `ExpandedSeat`
401
+ * (docs/3d-program-workorder §Architecture) — no new chart data is invented.
402
+ *
403
+ * This module is the ORCHESTRATOR and the public face of `scene/model/`: it
404
+ * sequences the passes and re-exports every type and helper the rest of the
405
+ * codebase, the tests and the SDK import from `scene/sceneModel`. The passes
406
+ * themselves live in `scene/model/` — see `docs/architecture` for the layering:
407
+ *
408
+ * types the shapes everything below is described in
409
+ * paint AO + how an authored colour becomes an architectural tone
410
+ * footprints configuration filtering, floor units, plan-space polygons
411
+ * shapeArchitecture décor vocabulary → architecture, and coplanar claims
412
+ * objectBuilders one prism per booth / table / shape / décor / GA area
413
+ * tiers per-section decks and the per-floor bowl
414
+ * labels zones, sections, rows and everything worth naming
415
+ * floors per-level boxes, and the per-seat floor attribute
416
+ * bounds chart footprint, ground datum, render + overview volumes
417
+ */
418
+
401
419
  declare function buildSceneModel(input: SceneModelInput): SceneModel;
402
420
 
403
421
  /**
@@ -440,16 +458,26 @@ interface PrepareVenue3DInput {
440
458
  declare function prepareVenue3D(input: PrepareVenue3DInput): Promise<PreparedVenue3D>;
441
459
 
442
460
  /**
443
- * view3d the sole dynamic-import boundary for the lazy OGL venue-view chunk.
444
- *
445
- * const { mountVenue3D } = await import('../view3d');
446
- * const handle = mountVenue3D(container, { doc, seats }, { onSeatPick, getSeatView });
447
- * await handle.flyToSeat(seatId);
461
+ * Dirty-flag render loop. A frame is drawn only while the camera is moving /
462
+ * damping or an availability update arrived; when idle, no rAF is scheduled at
463
+ * all (zero CPU/GPU when parked). Tracks an FPS EMA over frames actually
464
+ * rendered it reads as "idle" when nothing is scheduled.
465
+ */
466
+ interface RenderLoopStats {
467
+ fps: number;
468
+ rendered: number;
469
+ idle: boolean;
470
+ }
471
+
472
+ /**
473
+ * The public contract of the lazy venue-view chunk: what you mount it with
474
+ * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
475
+ * back (`Venue3DHandle`).
448
476
  *
449
- * Read-only 3D of any chart, fed entirely from the existing height contract.
450
- * Slice 1: orbit camera, extruded tiers/stage/GA, instanced seat dots, sub-range
451
- * availability, dispose + context-loss survival. Slice 2: GPU color-pick. Slice
452
- * 3: the fly-to-seat cinematic that dissolves into the view-from-seat panorama.
477
+ * Split out of `index.ts` so the mount closure and the UI/interaction modules
478
+ * can share them without importing the entry. `index.ts` re-exports all four —
479
+ * that is the path the SDK (`@seatlayer/core/view3d`), the picker, the designer
480
+ * preview and the harness import from, and it must never move.
453
481
  */
454
482
 
455
483
  interface Venue3DInput {
@@ -565,6 +593,20 @@ interface Venue3DHandle {
565
593
  */
566
594
  focusFloor(index: number | null): boolean;
567
595
  }
596
+
597
+ /**
598
+ * view3d — the sole dynamic-import boundary for the lazy OGL venue-view chunk.
599
+ *
600
+ * const { mountVenue3D } = await import('../view3d');
601
+ * const handle = mountVenue3D(container, { doc, seats }, { onSeatPick, getSeatView });
602
+ * await handle.flyToSeat(seatId);
603
+ *
604
+ * Read-only 3D of any chart, fed entirely from the existing height contract.
605
+ * Slice 1: orbit camera, extruded tiers/stage/GA, instanced seat dots, sub-range
606
+ * availability, dispose + context-loss survival. Slice 2: GPU color-pick. Slice
607
+ * 3: the fly-to-seat cinematic that dissolves into the view-from-seat panorama.
608
+ */
609
+
568
610
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
569
611
 
570
612
  export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DStats, buildSceneModel, mountVenue3D, prepareVenue3D };
@@ -1,18 +1,7 @@
1
- import { C as ChartDoc, E as ExpandedSeat } from '../types-tLOunI-B.js';
1
+ import { C as ChartDoc } from '../types-COfJorq_.js';
2
+ import { E as ExpandedSeat } from '../renderer-IBi9YKWR.js';
2
3
  import { SeatView } from './crossfade/panorama.js';
3
4
 
4
- /**
5
- * Dirty-flag render loop. A frame is drawn only while the camera is moving /
6
- * damping or an availability update arrived; when idle, no rAF is scheduled at
7
- * all (zero CPU/GPU when parked). Tracks an FPS EMA over frames actually
8
- * rendered — it reads as "idle" when nothing is scheduled.
9
- */
10
- interface RenderLoopStats {
11
- fps: number;
12
- rendered: number;
13
- idle: boolean;
14
- }
15
-
16
5
  /**
17
6
  * view3d palette + seat-state model — the single source of colour truth for the
18
7
  * OGL venue view. Pure data (no GPU, no DOM) so the scene builder and the unit
@@ -21,6 +10,7 @@ interface RenderLoopStats {
21
10
  * Look brief (docs/3d-usp-strategy §3): desaturated cool greys for structure,
22
11
  * one warm accent for the stage, availability colours only on seats.
23
12
  */
13
+
24
14
  type SeatState3D = 'available' | 'held' | 'sold' | 'selected' | 'dimmed';
25
15
  type RGB = [number, number, number];
26
16
  /** Structure palette — cool desaturated greys + one warm stage accent. */
@@ -398,6 +388,34 @@ interface SceneModelInput {
398
388
  /** Optional initial per-seat state (default all available). */
399
389
  initialState?: (seat: ExpandedSeat) => SeatState3D;
400
390
  }
391
+
392
+ /**
393
+ * The JS-side source of truth for the 3D scene — a pure, GPU-free description
394
+ * built once from the chart's existing height contract. Everything the renderer
395
+ * uploads (merged solid geometry, the instanced seat cloud, camera-framing
396
+ * bounds, the seat-state colour LUT) is derived here, so it survives a WebGL
397
+ * context loss: on `webglcontextrestored` the renderer simply re-uploads from
398
+ * this model without recomputing anything.
399
+ *
400
+ * Feeds 100% from `sectionGeometry` / `Floor.baseHeightM` / `ExpandedSeat`
401
+ * (docs/3d-program-workorder §Architecture) — no new chart data is invented.
402
+ *
403
+ * This module is the ORCHESTRATOR and the public face of `scene/model/`: it
404
+ * sequences the passes and re-exports every type and helper the rest of the
405
+ * codebase, the tests and the SDK import from `scene/sceneModel`. The passes
406
+ * themselves live in `scene/model/` — see `docs/architecture` for the layering:
407
+ *
408
+ * types the shapes everything below is described in
409
+ * paint AO + how an authored colour becomes an architectural tone
410
+ * footprints configuration filtering, floor units, plan-space polygons
411
+ * shapeArchitecture décor vocabulary → architecture, and coplanar claims
412
+ * objectBuilders one prism per booth / table / shape / décor / GA area
413
+ * tiers per-section decks and the per-floor bowl
414
+ * labels zones, sections, rows and everything worth naming
415
+ * floors per-level boxes, and the per-seat floor attribute
416
+ * bounds chart footprint, ground datum, render + overview volumes
417
+ */
418
+
401
419
  declare function buildSceneModel(input: SceneModelInput): SceneModel;
402
420
 
403
421
  /**
@@ -440,16 +458,26 @@ interface PrepareVenue3DInput {
440
458
  declare function prepareVenue3D(input: PrepareVenue3DInput): Promise<PreparedVenue3D>;
441
459
 
442
460
  /**
443
- * view3d the sole dynamic-import boundary for the lazy OGL venue-view chunk.
444
- *
445
- * const { mountVenue3D } = await import('../view3d');
446
- * const handle = mountVenue3D(container, { doc, seats }, { onSeatPick, getSeatView });
447
- * await handle.flyToSeat(seatId);
461
+ * Dirty-flag render loop. A frame is drawn only while the camera is moving /
462
+ * damping or an availability update arrived; when idle, no rAF is scheduled at
463
+ * all (zero CPU/GPU when parked). Tracks an FPS EMA over frames actually
464
+ * rendered it reads as "idle" when nothing is scheduled.
465
+ */
466
+ interface RenderLoopStats {
467
+ fps: number;
468
+ rendered: number;
469
+ idle: boolean;
470
+ }
471
+
472
+ /**
473
+ * The public contract of the lazy venue-view chunk: what you mount it with
474
+ * (`Venue3DInput`), how you configure it (`Venue3DOptions`), and what you get
475
+ * back (`Venue3DHandle`).
448
476
  *
449
- * Read-only 3D of any chart, fed entirely from the existing height contract.
450
- * Slice 1: orbit camera, extruded tiers/stage/GA, instanced seat dots, sub-range
451
- * availability, dispose + context-loss survival. Slice 2: GPU color-pick. Slice
452
- * 3: the fly-to-seat cinematic that dissolves into the view-from-seat panorama.
477
+ * Split out of `index.ts` so the mount closure and the UI/interaction modules
478
+ * can share them without importing the entry. `index.ts` re-exports all four —
479
+ * that is the path the SDK (`@seatlayer/core/view3d`), the picker, the designer
480
+ * preview and the harness import from, and it must never move.
453
481
  */
454
482
 
455
483
  interface Venue3DInput {
@@ -565,6 +593,20 @@ interface Venue3DHandle {
565
593
  */
566
594
  focusFloor(index: number | null): boolean;
567
595
  }
596
+
597
+ /**
598
+ * view3d — the sole dynamic-import boundary for the lazy OGL venue-view chunk.
599
+ *
600
+ * const { mountVenue3D } = await import('../view3d');
601
+ * const handle = mountVenue3D(container, { doc, seats }, { onSeatPick, getSeatView });
602
+ * await handle.flyToSeat(seatId);
603
+ *
604
+ * Read-only 3D of any chart, fed entirely from the existing height contract.
605
+ * Slice 1: orbit camera, extruded tiers/stage/GA, instanced seat dots, sub-range
606
+ * availability, dispose + context-loss survival. Slice 2: GPU color-pick. Slice
607
+ * 3: the fly-to-seat cinematic that dissolves into the view-from-seat panorama.
608
+ */
609
+
568
610
  declare function mountVenue3D(container: HTMLElement, input: Venue3DInput, opts?: Venue3DOptions): Venue3DHandle;
569
611
 
570
612
  export { type Analytics3DCallback, type Scene3DPrepSource, type SeatState3D, SeatView, type Venue3DHandle, type Venue3DInput, type Venue3DOptions, type Venue3DStats, buildSceneModel, mountVenue3D, prepareVenue3D };