@seatlayer/js 0.42.0 → 0.43.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.
package/dist/index.d.cts CHANGED
@@ -3388,6 +3388,16 @@ interface ChannelsSeatView {
3388
3388
  x: number;
3389
3389
  y: number;
3390
3390
  }
3391
+ /** One row offered to the bulk assignment chooser. A physically segmented row
3392
+ * (one label split across several row objects) shares one logical id, so the
3393
+ * organizer picks "Row AA" once rather than three fragments of it. */
3394
+ interface ChannelsRowView {
3395
+ id: string;
3396
+ label: string;
3397
+ sectionId: string;
3398
+ sectionLabel: string;
3399
+ labels: string[];
3400
+ }
3391
3401
  /** The `ManageApi` subset Channels mode uses — structural so tests can pass a
3392
3402
  * hand-rolled double without constructing a real client. */
3393
3403
  interface ChannelsClient {
@@ -3478,6 +3488,10 @@ interface ChannelsModeHost {
3478
3488
  id: string;
3479
3489
  label: string;
3480
3490
  }>;
3491
+ /** Every selectable label inside one section, for the additive scope chooser. */
3492
+ labelsInSection(sectionId: string): string[];
3493
+ /** Logical rows across the whole chart, grouped by their section. */
3494
+ rows(): ChannelsRowView[];
3481
3495
  categories(): Array<{
3482
3496
  key: string;
3483
3497
  label: string;
@@ -3576,6 +3590,10 @@ declare class ChannelsMode {
3576
3590
  private stagedDoneTimer;
3577
3591
  private lastSelectionCount;
3578
3592
  private lastCounts;
3593
+ /** Rows are structural chart data — they do not move while the organizer is
3594
+ * allocating. Deriving them walks every seat, so the view is cached for the
3595
+ * lifetime of this mode entry and ordinary selection repaints stay O(1). */
3596
+ private assignmentRowsCache;
3579
3597
  /** The markup currently in the rail. An identical repaint is skipped, which is
3580
3598
  * what keeps the organizer's scroll position (and open <select>) alive. */
3581
3599
  private railHtml;
@@ -3684,6 +3702,17 @@ declare class ChannelsMode {
3684
3702
  private countsHtml;
3685
3703
  private channelRowHtml;
3686
3704
  private listRailHtml;
3705
+ /**
3706
+ * Destination-first assignment controls.
3707
+ *
3708
+ * These used to live only inside the selection rail, which meant every route
3709
+ * into them was gated behind "select a seat on the map first" — the section,
3710
+ * row and category choosers were invisible until the organizer had already
3711
+ * done the work by hand. They now paint above the channel list too, so the
3712
+ * destination is chosen first and whole sections and rows are discoverable
3713
+ * without learning a hidden seat-first workflow.
3714
+ */
3715
+ private assignmentToolsHtml;
3687
3716
  private selectionRailHtml;
3688
3717
  private detailRailHtml;
3689
3718
  /**
@@ -3729,10 +3758,25 @@ declare class ChannelsMode {
3729
3758
  private paintSelection;
3730
3759
  private wireRail;
3731
3760
  private railAction;
3732
- private pickSection;
3761
+ /** Derived once per mode entry — see `assignmentRowsCache`. */
3762
+ private assignmentRows;
3733
3763
  private pickCategory;
3734
3764
  /** A tiny modal chooser reusing the dialog primitive (focus trap + Escape). */
3735
3765
  private promptChoice;
3766
+ /**
3767
+ * Add several whole sections, or several whole rows, in one operation.
3768
+ *
3769
+ * ADDITIVE by contract: the chooser starts from the labels already selected
3770
+ * and only ever grows that set, so opening it never destroys a hard-won
3771
+ * marquee or seat-list selection. The confirm button always states the net
3772
+ * number of seats it will add, and refuses to exceed `MAX_ASSIGNMENT_UNITS`.
3773
+ *
3774
+ * Rows get the richer variant. A large venue has thousands of them, so they
3775
+ * arrive collapsed under their section, with a section-level tri-state
3776
+ * checkbox, a search across every row, and a render cap — the flat list used
3777
+ * for sections would be an unusable wall of buttons.
3778
+ */
3779
+ private renderScopeDialog;
3736
3780
  private openDialog;
3737
3781
  private renderDialog;
3738
3782
  /**
@@ -3746,12 +3790,20 @@ declare class ChannelsMode {
3746
3790
  private showDialogError;
3747
3791
  private renderReviewDialog;
3748
3792
  /**
3749
- * Apply. On success the review sheet re-renders with the AUTHORITATIVE server
3750
- * buckets and the staged bar morphs to a for 1.2s. On a stale version the
3751
- * server mutated nothing: keep the selection, shake the bar once, and offer
3752
- * exactly one action Refresh and review.
3793
+ * Apply. On success the sheet CLOSES and the staged bar confirms what moved,
3794
+ * naming the destination and any skipped seats, with the AUTHORITATIVE server
3795
+ * buckets still one Details press away. Leaving the modal up on success made
3796
+ * the organizer dismiss a sheet to get back to a map they had just changed.
3797
+ * On a stale version the server mutated nothing: keep the selection, shake
3798
+ * the bar once, and offer exactly one action — Refresh and review.
3753
3799
  */
3754
3800
  private apply;
3801
+ /**
3802
+ * The success receipt, now that the review sheet closes on Apply. It names the
3803
+ * destination and the seats that could not move, keeps the authoritative
3804
+ * buckets reachable through Details, and stays up long enough to be read —
3805
+ * 1.2s was tuned for a confirmation the organizer was already looking at.
3806
+ */
3755
3807
  private showApplied;
3756
3808
  private shakeStaged;
3757
3809
  private renderRenameDialog;
@@ -3828,4 +3880,4 @@ declare class ChannelsMode {
3828
3880
  handleBack(): boolean;
3829
3881
  }
3830
3882
 
3831
- export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
3883
+ export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
package/dist/index.d.ts CHANGED
@@ -3388,6 +3388,16 @@ interface ChannelsSeatView {
3388
3388
  x: number;
3389
3389
  y: number;
3390
3390
  }
3391
+ /** One row offered to the bulk assignment chooser. A physically segmented row
3392
+ * (one label split across several row objects) shares one logical id, so the
3393
+ * organizer picks "Row AA" once rather than three fragments of it. */
3394
+ interface ChannelsRowView {
3395
+ id: string;
3396
+ label: string;
3397
+ sectionId: string;
3398
+ sectionLabel: string;
3399
+ labels: string[];
3400
+ }
3391
3401
  /** The `ManageApi` subset Channels mode uses — structural so tests can pass a
3392
3402
  * hand-rolled double without constructing a real client. */
3393
3403
  interface ChannelsClient {
@@ -3478,6 +3488,10 @@ interface ChannelsModeHost {
3478
3488
  id: string;
3479
3489
  label: string;
3480
3490
  }>;
3491
+ /** Every selectable label inside one section, for the additive scope chooser. */
3492
+ labelsInSection(sectionId: string): string[];
3493
+ /** Logical rows across the whole chart, grouped by their section. */
3494
+ rows(): ChannelsRowView[];
3481
3495
  categories(): Array<{
3482
3496
  key: string;
3483
3497
  label: string;
@@ -3576,6 +3590,10 @@ declare class ChannelsMode {
3576
3590
  private stagedDoneTimer;
3577
3591
  private lastSelectionCount;
3578
3592
  private lastCounts;
3593
+ /** Rows are structural chart data — they do not move while the organizer is
3594
+ * allocating. Deriving them walks every seat, so the view is cached for the
3595
+ * lifetime of this mode entry and ordinary selection repaints stay O(1). */
3596
+ private assignmentRowsCache;
3579
3597
  /** The markup currently in the rail. An identical repaint is skipped, which is
3580
3598
  * what keeps the organizer's scroll position (and open <select>) alive. */
3581
3599
  private railHtml;
@@ -3684,6 +3702,17 @@ declare class ChannelsMode {
3684
3702
  private countsHtml;
3685
3703
  private channelRowHtml;
3686
3704
  private listRailHtml;
3705
+ /**
3706
+ * Destination-first assignment controls.
3707
+ *
3708
+ * These used to live only inside the selection rail, which meant every route
3709
+ * into them was gated behind "select a seat on the map first" — the section,
3710
+ * row and category choosers were invisible until the organizer had already
3711
+ * done the work by hand. They now paint above the channel list too, so the
3712
+ * destination is chosen first and whole sections and rows are discoverable
3713
+ * without learning a hidden seat-first workflow.
3714
+ */
3715
+ private assignmentToolsHtml;
3687
3716
  private selectionRailHtml;
3688
3717
  private detailRailHtml;
3689
3718
  /**
@@ -3729,10 +3758,25 @@ declare class ChannelsMode {
3729
3758
  private paintSelection;
3730
3759
  private wireRail;
3731
3760
  private railAction;
3732
- private pickSection;
3761
+ /** Derived once per mode entry — see `assignmentRowsCache`. */
3762
+ private assignmentRows;
3733
3763
  private pickCategory;
3734
3764
  /** A tiny modal chooser reusing the dialog primitive (focus trap + Escape). */
3735
3765
  private promptChoice;
3766
+ /**
3767
+ * Add several whole sections, or several whole rows, in one operation.
3768
+ *
3769
+ * ADDITIVE by contract: the chooser starts from the labels already selected
3770
+ * and only ever grows that set, so opening it never destroys a hard-won
3771
+ * marquee or seat-list selection. The confirm button always states the net
3772
+ * number of seats it will add, and refuses to exceed `MAX_ASSIGNMENT_UNITS`.
3773
+ *
3774
+ * Rows get the richer variant. A large venue has thousands of them, so they
3775
+ * arrive collapsed under their section, with a section-level tri-state
3776
+ * checkbox, a search across every row, and a render cap — the flat list used
3777
+ * for sections would be an unusable wall of buttons.
3778
+ */
3779
+ private renderScopeDialog;
3736
3780
  private openDialog;
3737
3781
  private renderDialog;
3738
3782
  /**
@@ -3746,12 +3790,20 @@ declare class ChannelsMode {
3746
3790
  private showDialogError;
3747
3791
  private renderReviewDialog;
3748
3792
  /**
3749
- * Apply. On success the review sheet re-renders with the AUTHORITATIVE server
3750
- * buckets and the staged bar morphs to a for 1.2s. On a stale version the
3751
- * server mutated nothing: keep the selection, shake the bar once, and offer
3752
- * exactly one action Refresh and review.
3793
+ * Apply. On success the sheet CLOSES and the staged bar confirms what moved,
3794
+ * naming the destination and any skipped seats, with the AUTHORITATIVE server
3795
+ * buckets still one Details press away. Leaving the modal up on success made
3796
+ * the organizer dismiss a sheet to get back to a map they had just changed.
3797
+ * On a stale version the server mutated nothing: keep the selection, shake
3798
+ * the bar once, and offer exactly one action — Refresh and review.
3753
3799
  */
3754
3800
  private apply;
3801
+ /**
3802
+ * The success receipt, now that the review sheet closes on Apply. It names the
3803
+ * destination and the seats that could not move, keeps the authoritative
3804
+ * buckets reachable through Details, and stays up long enough to be read —
3805
+ * 1.2s was tuned for a confirmation the organizer was already looking at.
3806
+ */
3755
3807
  private showApplied;
3756
3808
  private shakeStaged;
3757
3809
  private renderRenameDialog;
@@ -3828,4 +3880,4 @@ declare class ChannelsMode {
3828
3880
  handleBack(): boolean;
3829
3881
  }
3830
3882
 
3831
- export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
3883
+ export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };