@seatlayer/js 0.27.0 → 0.28.1

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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, SeatHoverDetails, PickerTransport, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
1
+ import { PickerSeat, SeatHoverDetails, PickerTransport, RendererViewMode, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
2
2
  export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
3
3
 
4
4
  /**
@@ -529,8 +529,19 @@ declare class EmbeddedDesigner {
529
529
  * per-line tier + price) and never changes shape across minor releases.
530
530
  */
531
531
  interface CheckoutLineItem {
532
- /** Seat, table-group, or GA synthetic-unit label. */
532
+ /** Seat label (or GA synthetic-unit label) — the stable booking identity. */
533
533
  label: string;
534
+ /**
535
+ * Buyer-facing name (the designer's `displayLabel` override), when set.
536
+ * Show this in YOUR order summary; `label` stays the booking identity you
537
+ * pass to the book call. Absent = no override, fall back to `label`.
538
+ */
539
+ displayLabel?: string;
540
+ /**
541
+ * Buyer-facing type word override (seats.io "Displayed type", e.g. "Table",
542
+ * "Bench", "Box"), when the designer set one. Absent = the default word.
543
+ */
544
+ displayType?: string;
534
545
  /** Chart object id (row/booth/GA area) the unit belongs to. */
535
546
  objectId: string;
536
547
  objectType: 'seat' | 'booth' | 'ga' | 'table';
@@ -615,6 +626,9 @@ interface SeatPickerOptions {
615
626
  currency?: string;
616
627
  /** Colorblind-safe rendering (Okabe-Ito palette, hollow booked seats). */
617
628
  colorblindSafe?: boolean;
629
+ /** Initial map projection. `perspective` is the exact-seat projected 2.5D
630
+ * buyer view; all authoring and inventory identities remain unchanged. */
631
+ initialView?: RendererViewMode;
618
632
  /**
619
633
  * Hide the "Powered by SeatLayer" attribution badge in the side panel foot.
620
634
  * The chart theme's own `hideBadge` flag (paid orgs) also hides it — the badge
@@ -722,9 +736,15 @@ declare class SeatPicker {
722
736
  private tipPos;
723
737
  private confirmEl;
724
738
  private confirmSeat;
739
+ private tableDialogEl;
740
+ private tableDialog;
741
+ private tableDialogHeld;
742
+ private tableDialogReturnFocus;
725
743
  private srEl;
726
744
  private baQty;
727
745
  private baCat;
746
+ /** Optional navigation-zone scope for buyer best-available. */
747
+ private baZone;
728
748
  /** "★ Best seats" premium quick-pick toggle — biases best-available to premium seats. */
729
749
  private baPremium;
730
750
  private bestAvailableConfirm;
@@ -737,6 +757,7 @@ declare class SeatPicker {
737
757
  /** Resolved colorblind-safe state — stored preference wins over the option. */
738
758
  private cbSafe;
739
759
  private rungsEl;
760
+ private projectionEl;
740
761
  private floorsEl;
741
762
  private secCardEl;
742
763
  private viewEl;
@@ -773,10 +794,17 @@ declare class SeatPicker {
773
794
  private framedFs;
774
795
  /** Last height (px) posted to a host frame; dedupes redundant reports. */
775
796
  private lastPostedHeight;
797
+ /** True when the chart carries a real performance anchor — a stage-kind shape.
798
+ * Every chart has a `focalPoint` (a bare look-at coordinate), so its presence
799
+ * alone never justifies a "to stage" claim; only an actual stage does. */
800
+ private chartHasStage;
776
801
  /**
777
- * Eager sightline preview for the confirm card: a cheap generated forward
778
- * view (or the organizer's real photo) plus a "Nm to stage · clear
779
- * sightline" line the premium at-a-glance moment; click opens the 360.
802
+ * Eager sightline preview for the confirm card: the organizer's real view
803
+ * photo, or only when the chart has an actual stage to look at — a generated
804
+ * forward view plus an " Nm to stage · clear sightline" line. On a stageless
805
+ * chart both the distance/sightline claim and the generic stage silhouette are
806
+ * invented promises, so we suppress them; a real attached photo always shows.
807
+ * (OV-52)
780
808
  */
781
809
  private confirmThumbHtml;
782
810
  /** Minimal HTML/attribute escaper for buyer-authored commercial text (notes). */
@@ -793,6 +821,9 @@ declare class SeatPicker {
793
821
  /** Small ◐ limited-view marker for a cart chip; title/aria uses the seat's
794
822
  * note when present, else the generic view label. '' for a clear-view seat. */
795
823
  private commercialChipMarker;
824
+ private wheelchairProvisionLabel;
825
+ private wheelchairConfirmHtml;
826
+ private wheelchairChipMarker;
796
827
  /** True when the picker is rendered inside an iframe (snippet embed at /e/:key). */
797
828
  private isFramed;
798
829
  /**
@@ -953,10 +984,11 @@ declare class SeatPicker {
953
984
  /** Build the compact price selector in the panel header. Choosing a band both
954
985
  * filters availability and smoothly frames the matching seats on the map. */
955
986
  private buildPriceFilter;
956
- /** Build the rung pills (charts with sections) and floor switcher (>1 floor). */
987
+ /** Build projection, rung and floor controls for arena-scale charts. */
957
988
  private buildArenaChrome;
958
989
  /** Reflect the engine's current LOD rung onto the pill group. */
959
990
  private syncRung;
991
+ private syncProjection;
960
992
  /** Reflect the active floor onto the switcher rail. */
961
993
  private syncFloors;
962
994
  /** Show (or clear, on null) the tapped-section summary card. */
@@ -979,6 +1011,11 @@ declare class SeatPicker {
979
1011
  private sectionCardCoverage;
980
1012
  /** aria-live readout when keyboard focus lands on a seat. */
981
1013
  private announceSeat;
1014
+ private showTableDialog;
1015
+ private renderTableDialogState;
1016
+ private confirmTableDialog;
1017
+ private cancelTableDialog;
1018
+ private dismissTableDialog;
982
1019
  private showConfirm;
983
1020
  private reanchorConfirm;
984
1021
  private dismissConfirm;
@@ -1060,6 +1097,19 @@ declare class SeatPicker {
1060
1097
  private rowShort;
1061
1098
  private updateTooltip;
1062
1099
  getSelection(): PickerSeat[];
1100
+ /** Current colorblind-safe render state, resolved from the stored buyer
1101
+ * preference at mount. Host chrome (e.g. the Designer preview) reads this to
1102
+ * surface the state rather than rendering colorblind colors silently. */
1103
+ isColorblindSafe(): boolean;
1104
+ /** Single source of truth for the colorblind-safe toggle — used by both the
1105
+ * in-widget button and host chrome. Updates the renderer, the persisted
1106
+ * cross-surface preference, and the in-widget button's pressed state together
1107
+ * so the two controls never diverge. */
1108
+ setColorblindSafe(on: boolean): void;
1109
+ /** Switch the buyer canvas between flat, isometric and Perspective 2.5D. */
1110
+ setViewMode(mode: RendererViewMode): void;
1111
+ /** Current buyer canvas projection. */
1112
+ getViewMode(): RendererViewMode;
1063
1113
  /** Current active/restored hold reflected in the tray. */
1064
1114
  getCurrentHold(): HoldResult | null;
1065
1115
  /** Explicit host-driven hold restore (automatic session restore is on by default). */
@@ -1068,6 +1118,7 @@ declare class SeatPicker {
1068
1118
  removeHeldTicket(label: string): Promise<boolean>;
1069
1119
  bestAvailable(qty: number, categoryKey?: string, opts?: {
1070
1120
  preferPremium?: boolean;
1121
+ zoneId?: string;
1071
1122
  }): Promise<HoldResult | null>;
1072
1123
  release(): Promise<void>;
1073
1124
  destroy(): void;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, SeatHoverDetails, PickerTransport, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
1
+ import { PickerSeat, SeatHoverDetails, PickerTransport, RendererViewMode, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
2
2
  export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
3
3
 
4
4
  /**
@@ -529,8 +529,19 @@ declare class EmbeddedDesigner {
529
529
  * per-line tier + price) and never changes shape across minor releases.
530
530
  */
531
531
  interface CheckoutLineItem {
532
- /** Seat, table-group, or GA synthetic-unit label. */
532
+ /** Seat label (or GA synthetic-unit label) — the stable booking identity. */
533
533
  label: string;
534
+ /**
535
+ * Buyer-facing name (the designer's `displayLabel` override), when set.
536
+ * Show this in YOUR order summary; `label` stays the booking identity you
537
+ * pass to the book call. Absent = no override, fall back to `label`.
538
+ */
539
+ displayLabel?: string;
540
+ /**
541
+ * Buyer-facing type word override (seats.io "Displayed type", e.g. "Table",
542
+ * "Bench", "Box"), when the designer set one. Absent = the default word.
543
+ */
544
+ displayType?: string;
534
545
  /** Chart object id (row/booth/GA area) the unit belongs to. */
535
546
  objectId: string;
536
547
  objectType: 'seat' | 'booth' | 'ga' | 'table';
@@ -615,6 +626,9 @@ interface SeatPickerOptions {
615
626
  currency?: string;
616
627
  /** Colorblind-safe rendering (Okabe-Ito palette, hollow booked seats). */
617
628
  colorblindSafe?: boolean;
629
+ /** Initial map projection. `perspective` is the exact-seat projected 2.5D
630
+ * buyer view; all authoring and inventory identities remain unchanged. */
631
+ initialView?: RendererViewMode;
618
632
  /**
619
633
  * Hide the "Powered by SeatLayer" attribution badge in the side panel foot.
620
634
  * The chart theme's own `hideBadge` flag (paid orgs) also hides it — the badge
@@ -722,9 +736,15 @@ declare class SeatPicker {
722
736
  private tipPos;
723
737
  private confirmEl;
724
738
  private confirmSeat;
739
+ private tableDialogEl;
740
+ private tableDialog;
741
+ private tableDialogHeld;
742
+ private tableDialogReturnFocus;
725
743
  private srEl;
726
744
  private baQty;
727
745
  private baCat;
746
+ /** Optional navigation-zone scope for buyer best-available. */
747
+ private baZone;
728
748
  /** "★ Best seats" premium quick-pick toggle — biases best-available to premium seats. */
729
749
  private baPremium;
730
750
  private bestAvailableConfirm;
@@ -737,6 +757,7 @@ declare class SeatPicker {
737
757
  /** Resolved colorblind-safe state — stored preference wins over the option. */
738
758
  private cbSafe;
739
759
  private rungsEl;
760
+ private projectionEl;
740
761
  private floorsEl;
741
762
  private secCardEl;
742
763
  private viewEl;
@@ -773,10 +794,17 @@ declare class SeatPicker {
773
794
  private framedFs;
774
795
  /** Last height (px) posted to a host frame; dedupes redundant reports. */
775
796
  private lastPostedHeight;
797
+ /** True when the chart carries a real performance anchor — a stage-kind shape.
798
+ * Every chart has a `focalPoint` (a bare look-at coordinate), so its presence
799
+ * alone never justifies a "to stage" claim; only an actual stage does. */
800
+ private chartHasStage;
776
801
  /**
777
- * Eager sightline preview for the confirm card: a cheap generated forward
778
- * view (or the organizer's real photo) plus a "Nm to stage · clear
779
- * sightline" line the premium at-a-glance moment; click opens the 360.
802
+ * Eager sightline preview for the confirm card: the organizer's real view
803
+ * photo, or only when the chart has an actual stage to look at — a generated
804
+ * forward view plus an " Nm to stage · clear sightline" line. On a stageless
805
+ * chart both the distance/sightline claim and the generic stage silhouette are
806
+ * invented promises, so we suppress them; a real attached photo always shows.
807
+ * (OV-52)
780
808
  */
781
809
  private confirmThumbHtml;
782
810
  /** Minimal HTML/attribute escaper for buyer-authored commercial text (notes). */
@@ -793,6 +821,9 @@ declare class SeatPicker {
793
821
  /** Small ◐ limited-view marker for a cart chip; title/aria uses the seat's
794
822
  * note when present, else the generic view label. '' for a clear-view seat. */
795
823
  private commercialChipMarker;
824
+ private wheelchairProvisionLabel;
825
+ private wheelchairConfirmHtml;
826
+ private wheelchairChipMarker;
796
827
  /** True when the picker is rendered inside an iframe (snippet embed at /e/:key). */
797
828
  private isFramed;
798
829
  /**
@@ -953,10 +984,11 @@ declare class SeatPicker {
953
984
  /** Build the compact price selector in the panel header. Choosing a band both
954
985
  * filters availability and smoothly frames the matching seats on the map. */
955
986
  private buildPriceFilter;
956
- /** Build the rung pills (charts with sections) and floor switcher (>1 floor). */
987
+ /** Build projection, rung and floor controls for arena-scale charts. */
957
988
  private buildArenaChrome;
958
989
  /** Reflect the engine's current LOD rung onto the pill group. */
959
990
  private syncRung;
991
+ private syncProjection;
960
992
  /** Reflect the active floor onto the switcher rail. */
961
993
  private syncFloors;
962
994
  /** Show (or clear, on null) the tapped-section summary card. */
@@ -979,6 +1011,11 @@ declare class SeatPicker {
979
1011
  private sectionCardCoverage;
980
1012
  /** aria-live readout when keyboard focus lands on a seat. */
981
1013
  private announceSeat;
1014
+ private showTableDialog;
1015
+ private renderTableDialogState;
1016
+ private confirmTableDialog;
1017
+ private cancelTableDialog;
1018
+ private dismissTableDialog;
982
1019
  private showConfirm;
983
1020
  private reanchorConfirm;
984
1021
  private dismissConfirm;
@@ -1060,6 +1097,19 @@ declare class SeatPicker {
1060
1097
  private rowShort;
1061
1098
  private updateTooltip;
1062
1099
  getSelection(): PickerSeat[];
1100
+ /** Current colorblind-safe render state, resolved from the stored buyer
1101
+ * preference at mount. Host chrome (e.g. the Designer preview) reads this to
1102
+ * surface the state rather than rendering colorblind colors silently. */
1103
+ isColorblindSafe(): boolean;
1104
+ /** Single source of truth for the colorblind-safe toggle — used by both the
1105
+ * in-widget button and host chrome. Updates the renderer, the persisted
1106
+ * cross-surface preference, and the in-widget button's pressed state together
1107
+ * so the two controls never diverge. */
1108
+ setColorblindSafe(on: boolean): void;
1109
+ /** Switch the buyer canvas between flat, isometric and Perspective 2.5D. */
1110
+ setViewMode(mode: RendererViewMode): void;
1111
+ /** Current buyer canvas projection. */
1112
+ getViewMode(): RendererViewMode;
1063
1113
  /** Current active/restored hold reflected in the tray. */
1064
1114
  getCurrentHold(): HoldResult | null;
1065
1115
  /** Explicit host-driven hold restore (automatic session restore is on by default). */
@@ -1068,6 +1118,7 @@ declare class SeatPicker {
1068
1118
  removeHeldTicket(label: string): Promise<boolean>;
1069
1119
  bestAvailable(qty: number, categoryKey?: string, opts?: {
1070
1120
  preferPremium?: boolean;
1121
+ zoneId?: string;
1071
1122
  }): Promise<HoldResult | null>;
1072
1123
  release(): Promise<void>;
1073
1124
  destroy(): void;