@seatlayer/js 0.79.0 → 0.80.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/chunk-TNTHWQQ2.js +1 -0
- package/dist/index.cjs +74 -82
- package/dist/index.d.cts +43 -18
- package/dist/index.d.ts +43 -18
- package/dist/index.js +72 -80
- package/dist/manager.cjs +8 -8
- package/dist/manager.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-XGKKO65I.js +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1816,6 +1816,20 @@ interface SeatingChartOptions {
|
|
|
1816
1816
|
* `null` clears it. Purely informational; nothing is ever prevented.
|
|
1817
1817
|
*/
|
|
1818
1818
|
onHint?: (message: string | null) => void;
|
|
1819
|
+
/**
|
|
1820
|
+
* The buyer tapped a seat that is ALREADY in the selection.
|
|
1821
|
+
*
|
|
1822
|
+
* The seat is still selected when this fires — this class deliberately does
|
|
1823
|
+
* NOT toggle it back out, because it draws no card to say so and a silent
|
|
1824
|
+
* drop is how a buyer loses a seat by checking which one they picked
|
|
1825
|
+
* (reproduced on device through the native bridge, 2026-09-04). The host
|
|
1826
|
+
* shows its own "Remove this seat?" and calls `deselectObjects([seat.id])`
|
|
1827
|
+
* if the buyer says yes; doing nothing keeps the seat.
|
|
1828
|
+
*
|
|
1829
|
+
* Grouped tables and server-held units never arrive here: they keep their own
|
|
1830
|
+
* paths (`onTableSelectionRequest`, the hold release).
|
|
1831
|
+
*/
|
|
1832
|
+
onSeatRetap?: (seat: PickerSeat) => void;
|
|
1819
1833
|
}
|
|
1820
1834
|
declare class SeatingChart {
|
|
1821
1835
|
private readonly opts;
|
|
@@ -2069,6 +2083,15 @@ declare class SeatingChart {
|
|
|
2069
2083
|
setFloor(floorId: string): void;
|
|
2070
2084
|
/** How the stacked view marks each level: a `G/1/2` badge, or floor names. */
|
|
2071
2085
|
setFloorLabelStyle(style: FloorLabelStyle): void;
|
|
2086
|
+
/**
|
|
2087
|
+
* Does entering a section dim the rest of the venue?
|
|
2088
|
+
*
|
|
2089
|
+
* Unset, the map answers from its own stage width — no dim on a phone-sized
|
|
2090
|
+
* stage, where the focused section fills the viewport and the dim only
|
|
2091
|
+
* blackens the strip of edges around it. A native shell that wants the
|
|
2092
|
+
* desktop treatment (or wants it back after asking for it off) pins it here.
|
|
2093
|
+
*/
|
|
2094
|
+
setSectionFocusDim(enabled: boolean): void;
|
|
2072
2095
|
/** Toggle colorblind-safe rendering at runtime (see options.colorblindSafe). */
|
|
2073
2096
|
setColorblindSafe(on: boolean): void;
|
|
2074
2097
|
/** Switch the 2D canvas projection.
|
|
@@ -3218,6 +3241,8 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3218
3241
|
/** The mounted payment card, while one is up. */
|
|
3219
3242
|
private checkoutPanel;
|
|
3220
3243
|
/** @internal */ extendEl: HTMLDivElement | null;
|
|
3244
|
+
/** @internal */ extendDismissed: boolean;
|
|
3245
|
+
/** @internal */ extendUsed: boolean;
|
|
3221
3246
|
private bookedEl;
|
|
3222
3247
|
/** The blocking "your seats were released" dialog, while it is up. */
|
|
3223
3248
|
private holdExpiredEl;
|
|
@@ -3279,7 +3304,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3279
3304
|
*/
|
|
3280
3305
|
private baReopen;
|
|
3281
3306
|
private bestAvailableConfirm;
|
|
3282
|
-
private releasingHold;
|
|
3283
3307
|
/** Event sales window is closed (read-only load state / live close). */
|
|
3284
3308
|
/** @internal */ salesClosed: boolean;
|
|
3285
3309
|
/** Every seated category's live availability is 0 (sold-out overlay is up). */
|
|
@@ -3371,7 +3395,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3371
3395
|
/** Host-level event chrome owns the duplicate identity outside full screen. */
|
|
3372
3396
|
private eventDetailsHidden;
|
|
3373
3397
|
/** True while the hold note reads "N more selected" — the tick must not overwrite it. */
|
|
3374
|
-
/** @internal */ holdCopyPending: boolean;
|
|
3375
3398
|
/** Wide-layout ticket panel collapsed (map owns the full width). */
|
|
3376
3399
|
private sideCollapsed;
|
|
3377
3400
|
private sideToggleEl;
|
|
@@ -3627,7 +3650,7 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3627
3650
|
/** @internal */ rememberedHoldId(): string | null;
|
|
3628
3651
|
/** @internal */ rememberHold(hold: HoldResult): void;
|
|
3629
3652
|
/** @internal */ forgetHold(): void;
|
|
3630
|
-
/** @internal */ resumeHoldFromServer(holdId: string
|
|
3653
|
+
/** @internal */ resumeHoldFromServer(holdId: string): Promise<HoldResult | null>;
|
|
3631
3654
|
private restoreRememberedHold;
|
|
3632
3655
|
/** Section-bearing objects on the active floor (single-floor → doc.objects). */
|
|
3633
3656
|
private activeFloorObjects;
|
|
@@ -3669,6 +3692,21 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3669
3692
|
private buildArenaChrome;
|
|
3670
3693
|
/** Reflect the engine's current LOD rung onto the pill group. */
|
|
3671
3694
|
/** @internal */ syncRung(): void;
|
|
3695
|
+
/**
|
|
3696
|
+
* The phone's ONE map control, and whether it still has anywhere to go.
|
|
3697
|
+
*
|
|
3698
|
+
* On narrow the "fit to screen" disc is gone (CSS) and "−" is the whole
|
|
3699
|
+
* back-out story: one tap to the section the buyer drilled into, one more to
|
|
3700
|
+
* the whole venue. The ladder itself is `mapZoomOutStep`; this only dresses
|
|
3701
|
+
* it, and only on narrow — the wide layout keeps its "+", "−" and ⛶ exactly
|
|
3702
|
+
* as they were.
|
|
3703
|
+
*
|
|
3704
|
+
* DIMMED, NOT GONE. The control used to appear only once the buyer was deep
|
|
3705
|
+
* enough to be lost, so the corner grew and shrank a button underneath their
|
|
3706
|
+
* thumb. A control that stays put and plainly cannot be pressed says "you
|
|
3707
|
+
* are already looking at everything" without moving the target.
|
|
3708
|
+
*/
|
|
3709
|
+
private syncMapStepBack;
|
|
3672
3710
|
/** @internal */ syncProjection(): void;
|
|
3673
3711
|
/** Can this picker offer the 3D venue view? Requires the option (default on),
|
|
3674
3712
|
* WebGL2, a chart to render, and a chart small enough to render WELL. */
|
|
@@ -3816,20 +3854,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3816
3854
|
* clear. Shares `priceBandKeys` with the band selector so the row-dim state
|
|
3817
3855
|
* has one source of truth (and each control resets the other). */
|
|
3818
3856
|
/** @internal */ focusCategory(key: string): void;
|
|
3819
|
-
/**
|
|
3820
|
-
* Live-activity strip: turn WS availability deltas into one quiet line of
|
|
3821
|
-
* social proof ("2 seats just taken in VIP · 118 left"). Diffs per-category
|
|
3822
|
-
* counts on every status change — no per-seat payload needed. Skips the very
|
|
3823
|
-
* first computation (initial load is not "activity").
|
|
3824
|
-
*/
|
|
3825
|
-
/** @internal */ narrateAvailability(categories: Array<{
|
|
3826
|
-
key: string;
|
|
3827
|
-
label: string;
|
|
3828
|
-
}>, left: Record<string, number>): void;
|
|
3829
|
-
/** @internal */ lastCatAvail: Record<string, number> | null;
|
|
3830
|
-
/** @internal */ lastAvailFloorId: string;
|
|
3831
|
-
/** @internal */ availQuietUntil: number;
|
|
3832
|
-
/** @internal */ liveTimer: ReturnType<typeof setTimeout> | null;
|
|
3833
3857
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
3834
3858
|
private evictTakenSelections;
|
|
3835
3859
|
/** @internal */ syncTray(): void;
|
|
@@ -3857,12 +3881,13 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3857
3881
|
* "PIT · Adult ×2" means both of them, not one of two identical cards.
|
|
3858
3882
|
*/
|
|
3859
3883
|
private removeHeldLabels;
|
|
3860
|
-
private handleChangeSeats;
|
|
3861
3884
|
/** @internal */ handleCta(): Promise<void>;
|
|
3862
3885
|
/** @internal */ startHoldTimer(expiresAt: number): void;
|
|
3863
3886
|
/** @internal */ stopHoldTimer(): void;
|
|
3864
3887
|
/** Show/refresh (or hide) the "Need more time?" prompt with the live seconds left. */
|
|
3865
3888
|
/** @internal */ setExtendPrompt(show: boolean, ms: number): void;
|
|
3889
|
+
/** Re-ask whether the extend offer is due — for a layout flip, not a tick. */
|
|
3890
|
+
/** @internal */ refreshExtendPrompt(): void;
|
|
3866
3891
|
/** @internal */ handleExtend(): Promise<void>;
|
|
3867
3892
|
/**
|
|
3868
3893
|
* Fire the booked-confirmation state once the buyer's held seats settle to
|
package/dist/index.d.ts
CHANGED
|
@@ -1816,6 +1816,20 @@ interface SeatingChartOptions {
|
|
|
1816
1816
|
* `null` clears it. Purely informational; nothing is ever prevented.
|
|
1817
1817
|
*/
|
|
1818
1818
|
onHint?: (message: string | null) => void;
|
|
1819
|
+
/**
|
|
1820
|
+
* The buyer tapped a seat that is ALREADY in the selection.
|
|
1821
|
+
*
|
|
1822
|
+
* The seat is still selected when this fires — this class deliberately does
|
|
1823
|
+
* NOT toggle it back out, because it draws no card to say so and a silent
|
|
1824
|
+
* drop is how a buyer loses a seat by checking which one they picked
|
|
1825
|
+
* (reproduced on device through the native bridge, 2026-09-04). The host
|
|
1826
|
+
* shows its own "Remove this seat?" and calls `deselectObjects([seat.id])`
|
|
1827
|
+
* if the buyer says yes; doing nothing keeps the seat.
|
|
1828
|
+
*
|
|
1829
|
+
* Grouped tables and server-held units never arrive here: they keep their own
|
|
1830
|
+
* paths (`onTableSelectionRequest`, the hold release).
|
|
1831
|
+
*/
|
|
1832
|
+
onSeatRetap?: (seat: PickerSeat) => void;
|
|
1819
1833
|
}
|
|
1820
1834
|
declare class SeatingChart {
|
|
1821
1835
|
private readonly opts;
|
|
@@ -2069,6 +2083,15 @@ declare class SeatingChart {
|
|
|
2069
2083
|
setFloor(floorId: string): void;
|
|
2070
2084
|
/** How the stacked view marks each level: a `G/1/2` badge, or floor names. */
|
|
2071
2085
|
setFloorLabelStyle(style: FloorLabelStyle): void;
|
|
2086
|
+
/**
|
|
2087
|
+
* Does entering a section dim the rest of the venue?
|
|
2088
|
+
*
|
|
2089
|
+
* Unset, the map answers from its own stage width — no dim on a phone-sized
|
|
2090
|
+
* stage, where the focused section fills the viewport and the dim only
|
|
2091
|
+
* blackens the strip of edges around it. A native shell that wants the
|
|
2092
|
+
* desktop treatment (or wants it back after asking for it off) pins it here.
|
|
2093
|
+
*/
|
|
2094
|
+
setSectionFocusDim(enabled: boolean): void;
|
|
2072
2095
|
/** Toggle colorblind-safe rendering at runtime (see options.colorblindSafe). */
|
|
2073
2096
|
setColorblindSafe(on: boolean): void;
|
|
2074
2097
|
/** Switch the 2D canvas projection.
|
|
@@ -3218,6 +3241,8 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3218
3241
|
/** The mounted payment card, while one is up. */
|
|
3219
3242
|
private checkoutPanel;
|
|
3220
3243
|
/** @internal */ extendEl: HTMLDivElement | null;
|
|
3244
|
+
/** @internal */ extendDismissed: boolean;
|
|
3245
|
+
/** @internal */ extendUsed: boolean;
|
|
3221
3246
|
private bookedEl;
|
|
3222
3247
|
/** The blocking "your seats were released" dialog, while it is up. */
|
|
3223
3248
|
private holdExpiredEl;
|
|
@@ -3279,7 +3304,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3279
3304
|
*/
|
|
3280
3305
|
private baReopen;
|
|
3281
3306
|
private bestAvailableConfirm;
|
|
3282
|
-
private releasingHold;
|
|
3283
3307
|
/** Event sales window is closed (read-only load state / live close). */
|
|
3284
3308
|
/** @internal */ salesClosed: boolean;
|
|
3285
3309
|
/** Every seated category's live availability is 0 (sold-out overlay is up). */
|
|
@@ -3371,7 +3395,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3371
3395
|
/** Host-level event chrome owns the duplicate identity outside full screen. */
|
|
3372
3396
|
private eventDetailsHidden;
|
|
3373
3397
|
/** True while the hold note reads "N more selected" — the tick must not overwrite it. */
|
|
3374
|
-
/** @internal */ holdCopyPending: boolean;
|
|
3375
3398
|
/** Wide-layout ticket panel collapsed (map owns the full width). */
|
|
3376
3399
|
private sideCollapsed;
|
|
3377
3400
|
private sideToggleEl;
|
|
@@ -3627,7 +3650,7 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3627
3650
|
/** @internal */ rememberedHoldId(): string | null;
|
|
3628
3651
|
/** @internal */ rememberHold(hold: HoldResult): void;
|
|
3629
3652
|
/** @internal */ forgetHold(): void;
|
|
3630
|
-
/** @internal */ resumeHoldFromServer(holdId: string
|
|
3653
|
+
/** @internal */ resumeHoldFromServer(holdId: string): Promise<HoldResult | null>;
|
|
3631
3654
|
private restoreRememberedHold;
|
|
3632
3655
|
/** Section-bearing objects on the active floor (single-floor → doc.objects). */
|
|
3633
3656
|
private activeFloorObjects;
|
|
@@ -3669,6 +3692,21 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3669
3692
|
private buildArenaChrome;
|
|
3670
3693
|
/** Reflect the engine's current LOD rung onto the pill group. */
|
|
3671
3694
|
/** @internal */ syncRung(): void;
|
|
3695
|
+
/**
|
|
3696
|
+
* The phone's ONE map control, and whether it still has anywhere to go.
|
|
3697
|
+
*
|
|
3698
|
+
* On narrow the "fit to screen" disc is gone (CSS) and "−" is the whole
|
|
3699
|
+
* back-out story: one tap to the section the buyer drilled into, one more to
|
|
3700
|
+
* the whole venue. The ladder itself is `mapZoomOutStep`; this only dresses
|
|
3701
|
+
* it, and only on narrow — the wide layout keeps its "+", "−" and ⛶ exactly
|
|
3702
|
+
* as they were.
|
|
3703
|
+
*
|
|
3704
|
+
* DIMMED, NOT GONE. The control used to appear only once the buyer was deep
|
|
3705
|
+
* enough to be lost, so the corner grew and shrank a button underneath their
|
|
3706
|
+
* thumb. A control that stays put and plainly cannot be pressed says "you
|
|
3707
|
+
* are already looking at everything" without moving the target.
|
|
3708
|
+
*/
|
|
3709
|
+
private syncMapStepBack;
|
|
3672
3710
|
/** @internal */ syncProjection(): void;
|
|
3673
3711
|
/** Can this picker offer the 3D venue view? Requires the option (default on),
|
|
3674
3712
|
* WebGL2, a chart to render, and a chart small enough to render WELL. */
|
|
@@ -3816,20 +3854,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3816
3854
|
* clear. Shares `priceBandKeys` with the band selector so the row-dim state
|
|
3817
3855
|
* has one source of truth (and each control resets the other). */
|
|
3818
3856
|
/** @internal */ focusCategory(key: string): void;
|
|
3819
|
-
/**
|
|
3820
|
-
* Live-activity strip: turn WS availability deltas into one quiet line of
|
|
3821
|
-
* social proof ("2 seats just taken in VIP · 118 left"). Diffs per-category
|
|
3822
|
-
* counts on every status change — no per-seat payload needed. Skips the very
|
|
3823
|
-
* first computation (initial load is not "activity").
|
|
3824
|
-
*/
|
|
3825
|
-
/** @internal */ narrateAvailability(categories: Array<{
|
|
3826
|
-
key: string;
|
|
3827
|
-
label: string;
|
|
3828
|
-
}>, left: Record<string, number>): void;
|
|
3829
|
-
/** @internal */ lastCatAvail: Record<string, number> | null;
|
|
3830
|
-
/** @internal */ lastAvailFloorId: string;
|
|
3831
|
-
/** @internal */ availQuietUntil: number;
|
|
3832
|
-
/** @internal */ liveTimer: ReturnType<typeof setTimeout> | null;
|
|
3833
3857
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
3834
3858
|
private evictTakenSelections;
|
|
3835
3859
|
/** @internal */ syncTray(): void;
|
|
@@ -3857,12 +3881,13 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3857
3881
|
* "PIT · Adult ×2" means both of them, not one of two identical cards.
|
|
3858
3882
|
*/
|
|
3859
3883
|
private removeHeldLabels;
|
|
3860
|
-
private handleChangeSeats;
|
|
3861
3884
|
/** @internal */ handleCta(): Promise<void>;
|
|
3862
3885
|
/** @internal */ startHoldTimer(expiresAt: number): void;
|
|
3863
3886
|
/** @internal */ stopHoldTimer(): void;
|
|
3864
3887
|
/** Show/refresh (or hide) the "Need more time?" prompt with the live seconds left. */
|
|
3865
3888
|
/** @internal */ setExtendPrompt(show: boolean, ms: number): void;
|
|
3889
|
+
/** Re-ask whether the extend offer is due — for a layout flip, not a tick. */
|
|
3890
|
+
/** @internal */ refreshExtendPrompt(): void;
|
|
3866
3891
|
/** @internal */ handleExtend(): Promise<void>;
|
|
3867
3892
|
/**
|
|
3868
3893
|
* Fire the booked-confirmation state once the buyer's held seats settle to
|