@seatlayer/core 0.54.0 → 0.56.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
package/dist/index.d.cts CHANGED
@@ -1,13 +1,13 @@
1
- import { C as ChartDoc, P as Point, A as AccessibilityType, l as CategoryTier, f as SeatCommercialAttributes } from './types-COfJorq_.cjs';
2
- export { t as ACCESSIBILITY_RING_COLOR, u as ACCESSIBILITY_TYPES, v as AccessibilityMeta, w as AuthoringObjectState, B as BoothObject, x as Category, y as ChartLayoutConstraint, c as ChartObject, m as ChartReferenceImage, z as ChartTheme, r as CubicPath, D as DecorImageObject, F as Floor, G as GAAreaObject, k as GAInventorySegment, E as LABEL_STYLE_MAX_SIZE, H as LABEL_STYLE_MIN_SIZE, I as LabelPresentation, L as LabelStyle, O as ObjectEditorState, J as Physical3dEvidence, K as RadialClearanceLayoutConstraint, e as RectTableSeatCounts, b as RectTableSide, M as ReferenceAccessibilitySource, N as ReferenceCalibration, Q as ReferenceCategorySource, U as ReferenceDerivedScale, V as ReferenceInventoryExclusionSource, W as ReferenceInventorySource, X as ReferenceScanProposal, Y as ReferenceScanRowProposal, Z as ReferenceScanSectionProposal, _ as ReferenceSeatSeed, $ as ReferenceSectionTraceBatchInput, a0 as ReferenceSectionTraceBatchProposal, a1 as ReferenceSectionTraceInput, a2 as ReferenceSectionTraceProposal, g as ResolvedSeatConfidenceEvidence, R as RowObject, a3 as SEAT_COMMERCIAL_MARKS, a4 as SURROUNDINGS_SHAPE_ROLES, a5 as SeatCommercialMark, a6 as SeatCommercialMeta, a7 as SeatConfidenceCoverage, a8 as SeatConfidenceEvidence, a9 as SeatConfidenceModelLevel, aa as SeatConfidenceModeledTarget, ab as SeatConfidenceRealityLevel, S as SeatOverride, h as SeatViewCoverage, a as SeatViewMetadata, d as SectionObject, i as SectionOutlinePath, j as SectionPathSegment, ac as SelectionLayer, n as ShapeLineCap, o as ShapeLineEnding, p as ShapeLineJoin, q as ShapeObject, T as TableObject, ad as TextAlignment, ae as TextBackground, s as TextObject, af as TicketTierApplicability, ag as TicketTierEvidence, ah as TicketTierRestriction, ai as ZoneDef, aj as accessibilityMeta, ak as accessibilityRingColor, al as layerOf, am as seatCommercialMeta } from './types-COfJorq_.cjs';
3
- export { E as ExpandChartOptions, R as RowSeatSlot, T as TableSeatSlot, a as allObjects, c as chartBounds, e as expandBooth, b as expandChart, d as expandRow, f as expandRowSlots, g as expandTable, h as expandTableSlots, i as floorObjects, j as floorOverviewTranslations, k as floorsOf, l as layoutFloorOverview, o as objectCenter, m as owningSectionForObject, p as pointInPolygon, n as pointInPolygonWithHoles, q as polygonLabelPoint, r as rowInventoryCount, s as rowSeatPositions, t as stackFloors, u as tableInventoryCount, v as tableSeatCountsBySide, w as translateObject } from './layout-YFmuxw_M.cjs';
4
- import { c as TicketSelectionIssue } from './ticketRestrictions-BwAebpSK.cjs';
5
- export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-BwAebpSK.cjs';
6
- export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-B7cDF0Nq.cjs';
7
- export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-CugJarFp.cjs';
8
- import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, E as ExpandedSeat, c as RendererViewMode, d as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, e as RendererCallbacks } from './renderer-DhUHFtsI.cjs';
9
- export { C as CHART_STORAGE_KEY, f as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, g as RenderedGAAreaEvidence, h as RenderedHierarchyLabelEvidence, i as RenderedLabelHiddenReason, j as RenderedRowLabelEvidence, k as RendererMinimapSeat, l as RendererMinimapSection } from './renderer-DhUHFtsI.cjs';
10
- import './segmentedRowModel-CGoH684F.cjs';
1
+ import { C as ChartDoc, P as Point, A as AccessibilityType, l as CategoryTier, f as SeatCommercialAttributes } from './types-DTSG6_Hq.cjs';
2
+ export { t as ACCESSIBILITY_RING_COLOR, u as ACCESSIBILITY_TYPES, v as AccessibilityMeta, w as AuthoringObjectState, B as BoothObject, x as Category, y as ChartLayoutConstraint, c as ChartObject, m as ChartReferenceImage, z as ChartTheme, r as CubicPath, D as DecorImageObject, F as Floor, G as GAAreaObject, k as GAInventorySegment, E as LABEL_STYLE_MAX_SIZE, H as LABEL_STYLE_MIN_SIZE, I as LabelPresentation, L as LabelStyle, O as ObjectEditorState, J as Physical3dEvidence, K as RadialClearanceLayoutConstraint, e as RectTableSeatCounts, b as RectTableSide, M as ReferenceAccessibilitySource, N as ReferenceCalibration, Q as ReferenceCategorySource, U as ReferenceDerivedScale, V as ReferenceInventoryExclusionSource, W as ReferenceInventorySource, X as ReferenceScanProposal, Y as ReferenceScanRowProposal, Z as ReferenceScanSectionProposal, _ as ReferenceSeatSeed, $ as ReferenceSectionTraceBatchInput, a0 as ReferenceSectionTraceBatchProposal, a1 as ReferenceSectionTraceInput, a2 as ReferenceSectionTraceProposal, g as ResolvedSeatConfidenceEvidence, R as RowObject, a3 as SEAT_COMMERCIAL_MARKS, a4 as SURROUNDINGS_SHAPE_ROLES, a5 as SeatCommercialMark, a6 as SeatCommercialMeta, a7 as SeatConfidenceCoverage, a8 as SeatConfidenceEvidence, a9 as SeatConfidenceModelLevel, aa as SeatConfidenceModeledTarget, ab as SeatConfidenceRealityLevel, S as SeatOverride, h as SeatViewCoverage, a as SeatViewMetadata, d as SectionObject, i as SectionOutlinePath, j as SectionPathSegment, ac as SelectionLayer, n as ShapeLineCap, o as ShapeLineEnding, p as ShapeLineJoin, q as ShapeObject, T as TableObject, ad as TextAlignment, ae as TextBackground, s as TextObject, af as TicketTierApplicability, ag as TicketTierEvidence, ah as TicketTierRestriction, ai as ZoneDef, aj as accessibilityMeta, ak as accessibilityRingColor, al as layerOf, am as seatCommercialMeta } from './types-DTSG6_Hq.cjs';
3
+ export { E as ExpandChartOptions, R as RowSeatSlot, T as TableSeatSlot, a as allObjects, c as chartBounds, e as expandBooth, b as expandChart, d as expandRow, f as expandRowSlots, g as expandTable, h as expandTableSlots, i as floorObjects, j as floorOverviewTranslations, k as floorsOf, l as layoutFloorOverview, o as objectCenter, m as owningSectionForObject, p as pointInPolygon, n as pointInPolygonWithHoles, q as polygonLabelPoint, r as rowInventoryCount, s as rowSeatPositions, t as stackFloors, u as tableInventoryCount, v as tableSeatCountsBySide, w as translateObject } from './layout-Dlv5bIf2.cjs';
4
+ import { c as TicketSelectionIssue } from './ticketRestrictions-CzchbX_o.cjs';
5
+ export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-CzchbX_o.cjs';
6
+ export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-Dna1nZgR.cjs';
7
+ export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-bDkUOyBL.cjs';
8
+ import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, E as ExpandedSeat, c as RendererViewMode, d as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, e as RendererCallbacks } from './renderer-DySMcKAR.cjs';
9
+ export { C as CHART_STORAGE_KEY, f as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, g as RenderedGAAreaEvidence, h as RenderedHierarchyLabelEvidence, i as RenderedLabelHiddenReason, j as RenderedRowLabelEvidence, k as RendererMinimapSeat, l as RendererMinimapSection } from './renderer-DySMcKAR.cjs';
10
+ import './segmentedRowModel-BNXEUeHp.cjs';
11
11
 
12
12
  declare class SeatmapRenderer implements ISeatmapRenderer {
13
13
  private container;
@@ -231,6 +231,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
231
231
  }[];
232
232
  getActiveFloorId(): string;
233
233
  setStatus(seatIds: string[], status: SeatStatus): void;
234
+ /** Repaint event-only category overrides without rebuilding the chart. */
235
+ setSeatCategories(assignments: Record<string, string>): void;
234
236
  setOwnedHold(seatIds: string[] | null): void;
235
237
  setSelectionFocus(seatId: string | null): void;
236
238
  getStatus(seatId: string): SeatStatus;
@@ -1050,6 +1052,15 @@ interface PickerTransport {
1050
1052
  interface PickerCallbacks extends RendererCallbacks {
1051
1053
  /** Selection changed (manual clicks or a server best-available pick). */
1052
1054
  onSelectionChange?: (seats: PickerSeat[]) => void;
1055
+ /**
1056
+ * Exact-selection validity changed. Emitted only when
1057
+ * `numberOfPlacesToSelect` is configured, after `onSelectionChange`.
1058
+ */
1059
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
1060
+ /** The configured exact selection count has just been reached. */
1061
+ onSelectionValid?: (seats: PickerSeat[]) => void;
1062
+ /** The current selection does not yet match the configured exact count. */
1063
+ onSelectionInvalid?: (state: PickerSelectionValidity) => void;
1053
1064
  /** A grouped table was selected and needs buyer confirmation/guest quantity. */
1054
1065
  onTableSelectionRequest?: (table: TableSelectionDetails) => void;
1055
1066
  /** A hold opened (manual hold or best-available). */
@@ -1090,6 +1101,18 @@ interface PickerOptions extends PickerCallbacks {
1090
1101
  transport: PickerTransport;
1091
1102
  eventKey: string;
1092
1103
  maxSelection?: number;
1104
+ /** Object ids or public labels selected after the first live snapshot lands. */
1105
+ selectedObjects?: string[];
1106
+ /**
1107
+ * Object ids or public labels a buyer may select. Omit/null for every free
1108
+ * object. A grouped table reference expands to the whole booking unit.
1109
+ */
1110
+ selectableObjects?: string[] | null;
1111
+ /**
1112
+ * Require exactly this many seated/table guest units. It also becomes the
1113
+ * selection cap when `maxSelection` is omitted.
1114
+ */
1115
+ numberOfPlacesToSelect?: number;
1093
1116
  /** Renderer confirm-card mode (host shows a confirm popover instead of instant cart add). */
1094
1117
  confirmSelection?: boolean;
1095
1118
  /** ISO 4217 currency for on-map prices (default from money.DEFAULT_CURRENCY). */
@@ -1116,6 +1139,14 @@ interface PickerOptions extends PickerCallbacks {
1116
1139
  */
1117
1140
  mapTheme?: PickerMapTheme | null;
1118
1141
  }
1142
+ /** Exact-count state shared by the bare chart, full picker, and wrappers. */
1143
+ interface PickerSelectionValidity {
1144
+ isValid: boolean;
1145
+ count: number;
1146
+ required: number;
1147
+ remaining: number;
1148
+ seats: PickerSeat[];
1149
+ }
1119
1150
  /** Privacy-safe timings for one buyer-map load. Values are milliseconds and
1120
1151
  * contain no chart, seat, hold, buyer, or URL data. Hosts may aggregate these
1121
1152
  * with coarse chart-size/device dimensions supplied by the widget. */
@@ -1161,6 +1192,10 @@ declare class PickerController {
1161
1192
  private readonly api;
1162
1193
  private readonly key;
1163
1194
  private maxSelection;
1195
+ private readonly numberOfPlacesToSelect;
1196
+ private selectableObjectRefs;
1197
+ private selectableSeatIds;
1198
+ private lastSelectionValidity;
1164
1199
  private renderer;
1165
1200
  private _doc;
1166
1201
  /** Section/zone ids hidden from buyers this event (3.3) — seats vanish, not grey. */
@@ -1300,7 +1335,16 @@ declare class PickerController {
1300
1335
  clearSelection(): void;
1301
1336
  deselect(ids: string[]): void;
1302
1337
  setMaxSelection(maxSelection: number): void;
1303
- select(ids: string[]): PickerSeat[];
1338
+ select(references: string[]): PickerSeat[];
1339
+ /** Select every currently selectable object in the given categories. */
1340
+ selectCategories(categoryKeys: string[]): PickerSeat[];
1341
+ /** Deselect every selected object in the given categories. */
1342
+ deselectCategories(categoryKeys: string[]): void;
1343
+ /** Replace the buyer-selectable object allow-list without rebuilding. */
1344
+ setSelectableObjects(references: string[] | null): void;
1345
+ getSelectionValidity(): PickerSelectionValidity | null;
1346
+ private rebuildSelectableSeatIds;
1347
+ private isSelectableByPolicy;
1304
1348
  /** Confirm/update the guest quantity for a selected variable table. */
1305
1349
  setTableQuantity(label: string, quantity: number): boolean;
1306
1350
  /**
@@ -1524,6 +1568,7 @@ declare class PickerController {
1524
1568
  /** PickerSeats (with chosen tier) for a set of held labels. */
1525
1569
  private seatsForLabels;
1526
1570
  private emitSelectionChange;
1571
+ private emitSelectionValidity;
1527
1572
  /** Check explicit tier applicability and companion relationships for the
1528
1573
  * current (or supplied) seats. Ticket display names are never semantic input. */
1529
1574
  ticketIssue(labels?: string[]): TicketSelectionIssue | null;
@@ -1776,4 +1821,4 @@ declare function formatMinor(minor: number, currency?: string, locale?: string):
1776
1821
  /** Bare symbol for input adornments ("€", "$", "₹"). */
1777
1822
  declare function currencySymbol(currency?: string): string;
1778
1823
 
1779
- export { AccessibilityType, CURRENCY_CHOICES, CategoryTier, ChartDoc, DEFAULT_CURRENCY, type Dict, ExpandedSeat, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, type TableSelectionDetails, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, loadLocale, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, t, tCount };
1824
+ export { AccessibilityType, CURRENCY_CHOICES, CategoryTier, ChartDoc, DEFAULT_CURRENCY, type Dict, ExpandedSeat, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidity, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, type TableSelectionDetails, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, loadLocale, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, t, tCount };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { C as ChartDoc, P as Point, A as AccessibilityType, l as CategoryTier, f as SeatCommercialAttributes } from './types-COfJorq_.js';
2
- export { t as ACCESSIBILITY_RING_COLOR, u as ACCESSIBILITY_TYPES, v as AccessibilityMeta, w as AuthoringObjectState, B as BoothObject, x as Category, y as ChartLayoutConstraint, c as ChartObject, m as ChartReferenceImage, z as ChartTheme, r as CubicPath, D as DecorImageObject, F as Floor, G as GAAreaObject, k as GAInventorySegment, E as LABEL_STYLE_MAX_SIZE, H as LABEL_STYLE_MIN_SIZE, I as LabelPresentation, L as LabelStyle, O as ObjectEditorState, J as Physical3dEvidence, K as RadialClearanceLayoutConstraint, e as RectTableSeatCounts, b as RectTableSide, M as ReferenceAccessibilitySource, N as ReferenceCalibration, Q as ReferenceCategorySource, U as ReferenceDerivedScale, V as ReferenceInventoryExclusionSource, W as ReferenceInventorySource, X as ReferenceScanProposal, Y as ReferenceScanRowProposal, Z as ReferenceScanSectionProposal, _ as ReferenceSeatSeed, $ as ReferenceSectionTraceBatchInput, a0 as ReferenceSectionTraceBatchProposal, a1 as ReferenceSectionTraceInput, a2 as ReferenceSectionTraceProposal, g as ResolvedSeatConfidenceEvidence, R as RowObject, a3 as SEAT_COMMERCIAL_MARKS, a4 as SURROUNDINGS_SHAPE_ROLES, a5 as SeatCommercialMark, a6 as SeatCommercialMeta, a7 as SeatConfidenceCoverage, a8 as SeatConfidenceEvidence, a9 as SeatConfidenceModelLevel, aa as SeatConfidenceModeledTarget, ab as SeatConfidenceRealityLevel, S as SeatOverride, h as SeatViewCoverage, a as SeatViewMetadata, d as SectionObject, i as SectionOutlinePath, j as SectionPathSegment, ac as SelectionLayer, n as ShapeLineCap, o as ShapeLineEnding, p as ShapeLineJoin, q as ShapeObject, T as TableObject, ad as TextAlignment, ae as TextBackground, s as TextObject, af as TicketTierApplicability, ag as TicketTierEvidence, ah as TicketTierRestriction, ai as ZoneDef, aj as accessibilityMeta, ak as accessibilityRingColor, al as layerOf, am as seatCommercialMeta } from './types-COfJorq_.js';
3
- export { E as ExpandChartOptions, R as RowSeatSlot, T as TableSeatSlot, a as allObjects, c as chartBounds, e as expandBooth, b as expandChart, d as expandRow, f as expandRowSlots, g as expandTable, h as expandTableSlots, i as floorObjects, j as floorOverviewTranslations, k as floorsOf, l as layoutFloorOverview, o as objectCenter, m as owningSectionForObject, p as pointInPolygon, n as pointInPolygonWithHoles, q as polygonLabelPoint, r as rowInventoryCount, s as rowSeatPositions, t as stackFloors, u as tableInventoryCount, v as tableSeatCountsBySide, w as translateObject } from './layout-B5UYbwnv.js';
4
- import { c as TicketSelectionIssue } from './ticketRestrictions-ChHJwvTq.js';
5
- export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-ChHJwvTq.js';
6
- export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-mLOZrGrI.js';
7
- export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-DbZM034G.js';
8
- import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, E as ExpandedSeat, c as RendererViewMode, d as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, e as RendererCallbacks } from './renderer-IBi9YKWR.js';
9
- export { C as CHART_STORAGE_KEY, f as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, g as RenderedGAAreaEvidence, h as RenderedHierarchyLabelEvidence, i as RenderedLabelHiddenReason, j as RenderedRowLabelEvidence, k as RendererMinimapSeat, l as RendererMinimapSection } from './renderer-IBi9YKWR.js';
10
- import './segmentedRowModel-BPTnJ7Tz.js';
1
+ import { C as ChartDoc, P as Point, A as AccessibilityType, l as CategoryTier, f as SeatCommercialAttributes } from './types-DTSG6_Hq.js';
2
+ export { t as ACCESSIBILITY_RING_COLOR, u as ACCESSIBILITY_TYPES, v as AccessibilityMeta, w as AuthoringObjectState, B as BoothObject, x as Category, y as ChartLayoutConstraint, c as ChartObject, m as ChartReferenceImage, z as ChartTheme, r as CubicPath, D as DecorImageObject, F as Floor, G as GAAreaObject, k as GAInventorySegment, E as LABEL_STYLE_MAX_SIZE, H as LABEL_STYLE_MIN_SIZE, I as LabelPresentation, L as LabelStyle, O as ObjectEditorState, J as Physical3dEvidence, K as RadialClearanceLayoutConstraint, e as RectTableSeatCounts, b as RectTableSide, M as ReferenceAccessibilitySource, N as ReferenceCalibration, Q as ReferenceCategorySource, U as ReferenceDerivedScale, V as ReferenceInventoryExclusionSource, W as ReferenceInventorySource, X as ReferenceScanProposal, Y as ReferenceScanRowProposal, Z as ReferenceScanSectionProposal, _ as ReferenceSeatSeed, $ as ReferenceSectionTraceBatchInput, a0 as ReferenceSectionTraceBatchProposal, a1 as ReferenceSectionTraceInput, a2 as ReferenceSectionTraceProposal, g as ResolvedSeatConfidenceEvidence, R as RowObject, a3 as SEAT_COMMERCIAL_MARKS, a4 as SURROUNDINGS_SHAPE_ROLES, a5 as SeatCommercialMark, a6 as SeatCommercialMeta, a7 as SeatConfidenceCoverage, a8 as SeatConfidenceEvidence, a9 as SeatConfidenceModelLevel, aa as SeatConfidenceModeledTarget, ab as SeatConfidenceRealityLevel, S as SeatOverride, h as SeatViewCoverage, a as SeatViewMetadata, d as SectionObject, i as SectionOutlinePath, j as SectionPathSegment, ac as SelectionLayer, n as ShapeLineCap, o as ShapeLineEnding, p as ShapeLineJoin, q as ShapeObject, T as TableObject, ad as TextAlignment, ae as TextBackground, s as TextObject, af as TicketTierApplicability, ag as TicketTierEvidence, ah as TicketTierRestriction, ai as ZoneDef, aj as accessibilityMeta, ak as accessibilityRingColor, al as layerOf, am as seatCommercialMeta } from './types-DTSG6_Hq.js';
3
+ export { E as ExpandChartOptions, R as RowSeatSlot, T as TableSeatSlot, a as allObjects, c as chartBounds, e as expandBooth, b as expandChart, d as expandRow, f as expandRowSlots, g as expandTable, h as expandTableSlots, i as floorObjects, j as floorOverviewTranslations, k as floorsOf, l as layoutFloorOverview, o as objectCenter, m as owningSectionForObject, p as pointInPolygon, n as pointInPolygonWithHoles, q as polygonLabelPoint, r as rowInventoryCount, s as rowSeatPositions, t as stackFloors, u as tableInventoryCount, v as tableSeatCountsBySide, w as translateObject } from './layout-ClQkmixY.js';
4
+ import { c as TicketSelectionIssue } from './ticketRestrictions-DaYOCpEw.js';
5
+ export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-DaYOCpEw.js';
6
+ export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-DIzgtDjF.js';
7
+ export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-B3jgdgPO.js';
8
+ import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, E as ExpandedSeat, c as RendererViewMode, d as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, e as RendererCallbacks } from './renderer-B_g-W_QB.js';
9
+ export { C as CHART_STORAGE_KEY, f as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, g as RenderedGAAreaEvidence, h as RenderedHierarchyLabelEvidence, i as RenderedLabelHiddenReason, j as RenderedRowLabelEvidence, k as RendererMinimapSeat, l as RendererMinimapSection } from './renderer-B_g-W_QB.js';
10
+ import './segmentedRowModel-COXw4GCh.js';
11
11
 
12
12
  declare class SeatmapRenderer implements ISeatmapRenderer {
13
13
  private container;
@@ -231,6 +231,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
231
231
  }[];
232
232
  getActiveFloorId(): string;
233
233
  setStatus(seatIds: string[], status: SeatStatus): void;
234
+ /** Repaint event-only category overrides without rebuilding the chart. */
235
+ setSeatCategories(assignments: Record<string, string>): void;
234
236
  setOwnedHold(seatIds: string[] | null): void;
235
237
  setSelectionFocus(seatId: string | null): void;
236
238
  getStatus(seatId: string): SeatStatus;
@@ -1050,6 +1052,15 @@ interface PickerTransport {
1050
1052
  interface PickerCallbacks extends RendererCallbacks {
1051
1053
  /** Selection changed (manual clicks or a server best-available pick). */
1052
1054
  onSelectionChange?: (seats: PickerSeat[]) => void;
1055
+ /**
1056
+ * Exact-selection validity changed. Emitted only when
1057
+ * `numberOfPlacesToSelect` is configured, after `onSelectionChange`.
1058
+ */
1059
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
1060
+ /** The configured exact selection count has just been reached. */
1061
+ onSelectionValid?: (seats: PickerSeat[]) => void;
1062
+ /** The current selection does not yet match the configured exact count. */
1063
+ onSelectionInvalid?: (state: PickerSelectionValidity) => void;
1053
1064
  /** A grouped table was selected and needs buyer confirmation/guest quantity. */
1054
1065
  onTableSelectionRequest?: (table: TableSelectionDetails) => void;
1055
1066
  /** A hold opened (manual hold or best-available). */
@@ -1090,6 +1101,18 @@ interface PickerOptions extends PickerCallbacks {
1090
1101
  transport: PickerTransport;
1091
1102
  eventKey: string;
1092
1103
  maxSelection?: number;
1104
+ /** Object ids or public labels selected after the first live snapshot lands. */
1105
+ selectedObjects?: string[];
1106
+ /**
1107
+ * Object ids or public labels a buyer may select. Omit/null for every free
1108
+ * object. A grouped table reference expands to the whole booking unit.
1109
+ */
1110
+ selectableObjects?: string[] | null;
1111
+ /**
1112
+ * Require exactly this many seated/table guest units. It also becomes the
1113
+ * selection cap when `maxSelection` is omitted.
1114
+ */
1115
+ numberOfPlacesToSelect?: number;
1093
1116
  /** Renderer confirm-card mode (host shows a confirm popover instead of instant cart add). */
1094
1117
  confirmSelection?: boolean;
1095
1118
  /** ISO 4217 currency for on-map prices (default from money.DEFAULT_CURRENCY). */
@@ -1116,6 +1139,14 @@ interface PickerOptions extends PickerCallbacks {
1116
1139
  */
1117
1140
  mapTheme?: PickerMapTheme | null;
1118
1141
  }
1142
+ /** Exact-count state shared by the bare chart, full picker, and wrappers. */
1143
+ interface PickerSelectionValidity {
1144
+ isValid: boolean;
1145
+ count: number;
1146
+ required: number;
1147
+ remaining: number;
1148
+ seats: PickerSeat[];
1149
+ }
1119
1150
  /** Privacy-safe timings for one buyer-map load. Values are milliseconds and
1120
1151
  * contain no chart, seat, hold, buyer, or URL data. Hosts may aggregate these
1121
1152
  * with coarse chart-size/device dimensions supplied by the widget. */
@@ -1161,6 +1192,10 @@ declare class PickerController {
1161
1192
  private readonly api;
1162
1193
  private readonly key;
1163
1194
  private maxSelection;
1195
+ private readonly numberOfPlacesToSelect;
1196
+ private selectableObjectRefs;
1197
+ private selectableSeatIds;
1198
+ private lastSelectionValidity;
1164
1199
  private renderer;
1165
1200
  private _doc;
1166
1201
  /** Section/zone ids hidden from buyers this event (3.3) — seats vanish, not grey. */
@@ -1300,7 +1335,16 @@ declare class PickerController {
1300
1335
  clearSelection(): void;
1301
1336
  deselect(ids: string[]): void;
1302
1337
  setMaxSelection(maxSelection: number): void;
1303
- select(ids: string[]): PickerSeat[];
1338
+ select(references: string[]): PickerSeat[];
1339
+ /** Select every currently selectable object in the given categories. */
1340
+ selectCategories(categoryKeys: string[]): PickerSeat[];
1341
+ /** Deselect every selected object in the given categories. */
1342
+ deselectCategories(categoryKeys: string[]): void;
1343
+ /** Replace the buyer-selectable object allow-list without rebuilding. */
1344
+ setSelectableObjects(references: string[] | null): void;
1345
+ getSelectionValidity(): PickerSelectionValidity | null;
1346
+ private rebuildSelectableSeatIds;
1347
+ private isSelectableByPolicy;
1304
1348
  /** Confirm/update the guest quantity for a selected variable table. */
1305
1349
  setTableQuantity(label: string, quantity: number): boolean;
1306
1350
  /**
@@ -1524,6 +1568,7 @@ declare class PickerController {
1524
1568
  /** PickerSeats (with chosen tier) for a set of held labels. */
1525
1569
  private seatsForLabels;
1526
1570
  private emitSelectionChange;
1571
+ private emitSelectionValidity;
1527
1572
  /** Check explicit tier applicability and companion relationships for the
1528
1573
  * current (or supplied) seats. Ticket display names are never semantic input. */
1529
1574
  ticketIssue(labels?: string[]): TicketSelectionIssue | null;
@@ -1776,4 +1821,4 @@ declare function formatMinor(minor: number, currency?: string, locale?: string):
1776
1821
  /** Bare symbol for input adornments ("€", "$", "₹"). */
1777
1822
  declare function currencySymbol(currency?: string): string;
1778
1823
 
1779
- export { AccessibilityType, CURRENCY_CHOICES, CategoryTier, ChartDoc, DEFAULT_CURRENCY, type Dict, ExpandedSeat, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, type TableSelectionDetails, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, loadLocale, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, t, tCount };
1824
+ export { AccessibilityType, CURRENCY_CHOICES, CategoryTier, ChartDoc, DEFAULT_CURRENCY, type Dict, ExpandedSeat, type HoldConflict, type HoldInfo, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidity, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, type TableSelectionDetails, createRenderer, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, loadLocale, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, t, tCount };