{"version":3,"sources":["../src/manager.ts","../src/SeatManager.tsx"],"sourcesContent":["/**\n * `@seatlayer/react/manager` — the organizer cockpit component, and nothing else.\n *\n * The React counterpart of `@seatlayer/js/manager`, and it exists for the same\n * reason: importing `SeatManager` from the package root drags `SeatPicker`,\n * `SeatingChart` and `EmbeddedDesigner` in with it, and through them the buyer\n * half of the engine. See the header of `@seatlayer/js`'s `src/manager.ts` for\n * the measurement and why a bundler cannot undo it from the outside.\n *\n * The one rule that makes this work: this file — and `./SeatManager` behind it\n * — must import from `@seatlayer/js/manager`, never from `@seatlayer/js`. One\n * bare-barrel import anywhere in this graph re-admits the whole buyer SDK and\n * the saving silently disappears, which is exactly the kind of regression that\n * looks like nothing at all in a diff.\n *\n * The package root keeps exporting `SeatManager` unchanged.\n */\nexport { SeatManager } from './SeatManager';\nexport type {\n  SeatManagerHandle,\n  SeatManagerProps,\n  SeatManagerOptions,\n  SeatManagerMode,\n  EventScopedManageToken,\n  SeatManagerTallies,\n  SeatManagerActivity,\n  SeatManagerActionResult,\n  SeatManagerConnection,\n} from './SeatManager';\nexport type {\n  ControlRoomActivityEntry,\n  ControlRoomSectionMetric,\n  ControlRoomSnapshot,\n} from '@seatlayer/js/manager';\n","import {\n  forwardRef,\n  useEffect,\n  useImperativeHandle,\n  useRef,\n  type CSSProperties,\n} from 'react';\nimport {\n  SeatManager as CoreSeatManager,\n  type SeatManagerOptions,\n  type SeatManagerMode,\n  type EventScopedManageToken,\n  type SeatManagerTallies,\n  type SeatManagerActivity,\n  type SeatManagerActionResult,\n  type SeatManagerConnection,\n  type SeatManagerFilteredSection,\n  type SeatManagerSelectionValidity,\n  type EventTableBookingMode,\n  type ReportResult,\n  type ControlRoomSnapshot,\n  type LogEntry,\n  type ExpandedSeat,\n// `@seatlayer/js/manager`, NOT the bare `@seatlayer/js` barrel. The barrel is a\n// buyer SDK that also exports the cockpit, so importing the cockpit through it\n// drags SeatPicker, SeatingChart, EmbeddedDesigner and the engine code only\n// those reach into every bundle that renders a control room. See the header of\n// `@seatlayer/js`'s `src/manager.ts` for the measurement.\n} from '@seatlayer/js/manager';\n\nexport type {\n  SeatManagerOptions,\n  SeatManagerMode,\n  EventScopedManageToken,\n  SeatManagerTallies,\n  SeatManagerActivity,\n  SeatManagerActionResult,\n  SeatManagerConnection,\n  SeatManagerFilteredSection,\n  SeatManagerSelectionValidity,\n  EventTableBookingMode,\n} from '@seatlayer/js/manager';\n\n/** Imperative handle for the organizer manage board. */\nexport interface SeatManagerHandle {\n  setMode(mode: SeatManagerMode): void;\n  setToken(token: EventScopedManageToken, expiresAt?: number): void;\n  setHeatOverlay(enabled: boolean): void;\n  setFollowLive(enabled: boolean): void;\n  setTrendWindow(windowMinutes: number): Promise<ControlRoomSnapshot>;\n  enterFullscreen(): Promise<void>;\n  exitFullscreen(): Promise<void>;\n  isFullscreen(): boolean;\n  block(labels?: string[], opts?: { releaseAt?: number; reason?: string }): Promise<void>;\n  unblock(labels?: string[]): Promise<void>;\n  unblockAll(): Promise<void>;\n  cancelBooking(labels: string[], bookingRef: string): Promise<void>;\n  setCategory(categoryKey: string, labels?: string[]): Promise<void>;\n  setTableBooking(\n    tableIds: string[],\n    mode: EventTableBookingMode,\n    bounds?: { minOccupancy?: number; maxOccupancy?: number },\n  ): Promise<void>;\n  selectAll(): ExpandedSeat[];\n  selectSection(sectionId: string): ExpandedSeat[];\n  selectByLabels(labels: string[]): ExpandedSeat[];\n  selectObjects(labels: string[]): ExpandedSeat[];\n  deselectObjects(labels: string[]): ExpandedSeat[];\n  selectCategories(keys: string[]): ExpandedSeat[];\n  deselectCategories(keys: string[]): ExpandedSeat[];\n  setSelectableObjects(labels: string[]): void;\n  setUnavailableObjectsSelectable(enabled: boolean): void;\n  setObjectSelectable(predicate: SeatManagerOptions['isObjectSelectable']): void;\n  setMaxSelectedObjects(max: number | undefined): void;\n  setNumberOfPlacesToSelect(required: number | undefined): void;\n  getSelectionValidity(): SeatManagerSelectionValidity | null;\n  setFilteredSection(label: string): SeatManagerFilteredSection[];\n  clearFilteredSection(): void;\n  getFilteredSections(): SeatManagerFilteredSection[];\n  clearSelection(): void;\n  getSelection(): ExpandedSeat[];\n  getReport(): Promise<ReportResult>;\n  getControlRoomSnapshot(windowMinutes?: number): Promise<ControlRoomSnapshot>;\n  getLog(opts?: { limit?: number; before?: number }): Promise<{ entries: LogEntry[]; nextBefore: number | null }>;\n  setHoldTtl(ms: number | null): Promise<void>;\n  /**\n   * Realtime link state plus the \"as of\" behind the numbers on screen.\n   *\n   * Null only before the manager has mounted. Pair with the `onConnectionChange`\n   * prop: the callback gives the edges, this gives the answer on demand — which\n   * is what a host needs on tab focus, when no transition is coming.\n   */\n  getConnection(): SeatManagerConnection | null;\n  zoomToFit(): void;\n}\n\nexport interface SeatManagerProps extends Omit<SeatManagerOptions, 'container'> {\n  className?: string;\n  style?: CSSProperties;\n}\n\n/**\n * React wrapper around the framework-agnostic {@link CoreSeatManager}. Give the\n * wrapping div a size (it fills its box — a war-room board wants a big one) and\n * the manager lays out the live map + KPI bar + rails inside it. Rebuilt only\n * when the event identity / apiBase changes. Tokens, declared capabilities,\n * theme, fallback currency, background liveness, and callbacks are updated in\n * place without tearing the board down.\n */\nexport const SeatManager = forwardRef<SeatManagerHandle, SeatManagerProps>(\n  function SeatManager(props, ref) {\n    const {\n      className, style, apiBase, eventKey, token, tokenExpiresAt,\n      mode, currency, keepLiveWhileHidden, followLive, capabilities,\n      selectedObjects, selectableObjects, unavailableObjectsSelectable,\n      maxSelectedObjects, numberOfPlacesToSelect, isObjectSelectable, tools,\n    } = props;\n\n    const containerRef = useRef<HTMLDivElement | null>(null);\n    const managerRef = useRef<CoreSeatManager | null>(null);\n\n    const callbacks = useRef(props);\n    callbacks.current = props;\n\n    useEffect(() => {\n      const el = containerRef.current;\n      if (!el) return;\n\n      const manager = new CoreSeatManager({\n        container: el,\n        apiBase,\n        eventKey,\n        token,\n        tokenExpiresAt,\n        mode,\n        currency,\n        keepLiveWhileHidden,\n        followLive,\n        capabilities,\n        selectedObjects,\n        selectableObjects,\n        unavailableObjectsSelectable,\n        maxSelectedObjects,\n        numberOfPlacesToSelect,\n        isObjectSelectable,\n        // Which tools the cockpit offers (Watch / Manage / Host tools). Read\n        // once at mount like `capabilities`: hosts decide this per surface,\n        // not per render.\n        tools,\n        theme: callbacks.current.theme,\n        // Light / dark / follow the operator's own preference. Applied before\n        // first paint so a cockpit asked for light never flashes the war-room\n        // dark on the way in.\n        themeMode: callbacks.current.themeMode,\n        onReady: () => callbacks.current.onReady?.(),\n        onTallies: (t: SeatManagerTallies) => callbacks.current.onTallies?.(t),\n        onActivity: (activity: SeatManagerActivity) => callbacks.current.onActivity?.(activity),\n        onControlRoom: (snapshot: ControlRoomSnapshot) => callbacks.current.onControlRoom?.(snapshot),\n        onTokenRefresh: callbacks.current.onTokenRefresh ? async () => callbacks.current.onTokenRefresh!() : undefined,\n        onModeChange: (nextMode) => callbacks.current.onModeChange?.(nextMode),\n        onFollowLiveChange: (enabled) => callbacks.current.onFollowLiveChange?.(enabled),\n        onSelectionChange: (s: ExpandedSeat[]) => callbacks.current.onSelectionChange?.(s),\n        onObjectSelected: (object) => callbacks.current.onObjectSelected?.(object),\n        onObjectDeselected: (object) => callbacks.current.onObjectDeselected?.(object),\n        onSelectionValidityChange: (state) => callbacks.current.onSelectionValidityChange?.(state),\n        onSelectionValid: (state) => callbacks.current.onSelectionValid?.(state),\n        onSelectionInvalid: (state) => callbacks.current.onSelectionInvalid?.(state),\n        onSelectionLimit: (max) => callbacks.current.onSelectionLimit?.(max),\n        onFilteredSectionChange: (sections) => callbacks.current.onFilteredSectionChange?.(sections),\n        onActionComplete: (r: SeatManagerActionResult) => callbacks.current.onActionComplete?.(r),\n        onConnectionChange: (s: SeatManagerConnection) => callbacks.current.onConnectionChange?.(s),\n        onError: (e: unknown) => callbacks.current.onError?.(e),\n      });\n      managerRef.current = manager;\n      void manager.render();\n\n      return () => {\n        manager.destroy();\n        managerRef.current = null;\n      };\n      // Rebuild only on identity change (not on every callback change).\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [apiBase, eventKey]);\n\n    // Rotate credentials without losing camera, selection, realtime state or DOM.\n    useEffect(() => {\n      managerRef.current?.setToken(token, tokenExpiresAt);\n    }, [token, tokenExpiresAt]);\n\n    useEffect(() => {\n      managerRef.current?.setCapabilities(capabilities);\n    }, [capabilities]);\n\n    useEffect(() => {\n      managerRef.current?.setCurrency(currency);\n    }, [currency]);\n\n    useEffect(() => {\n      managerRef.current?.setTheme(props.theme);\n    }, [props.theme]);\n\n    // Reflected in place: the cockpit keeps the operator's selection, the\n    // camera and the realtime socket across a mode change.\n    useEffect(() => {\n      managerRef.current?.setThemeMode(props.themeMode);\n    }, [props.themeMode]);\n\n    useEffect(() => {\n      managerRef.current?.setKeepLiveWhileHidden(keepLiveWhileHidden);\n    }, [keepLiveWhileHidden]);\n\n    useEffect(() => {\n      managerRef.current?.setTokenRefresh(\n        props.onTokenRefresh ? async () => callbacks.current.onTokenRefresh!() : undefined,\n      );\n    }, [!!props.onTokenRefresh]);\n\n    // Reflect a controlled `mode` prop onto the live instance without rebuilding.\n    useEffect(() => {\n      if (mode) managerRef.current?.setMode(mode);\n    }, [mode]);\n\n    useEffect(() => {\n      if (followLive != null) managerRef.current?.setFollowLive(followLive);\n    }, [followLive]);\n\n    useEffect(() => {\n      managerRef.current?.setSelectableObjects(selectableObjects ?? []);\n    }, [selectableObjects]);\n\n    useEffect(() => {\n      managerRef.current?.setUnavailableObjectsSelectable(unavailableObjectsSelectable ?? true);\n    }, [unavailableObjectsSelectable]);\n\n    useEffect(() => {\n      managerRef.current?.setMaxSelectedObjects(maxSelectedObjects);\n    }, [maxSelectedObjects]);\n\n    useEffect(() => {\n      managerRef.current?.setNumberOfPlacesToSelect(numberOfPlacesToSelect);\n    }, [numberOfPlacesToSelect]);\n\n    useEffect(() => {\n      managerRef.current?.setObjectSelectable(isObjectSelectable);\n    }, [isObjectSelectable]);\n\n    useImperativeHandle(\n      ref,\n      (): SeatManagerHandle => ({\n        setMode: (m) => managerRef.current?.setMode(m),\n        setToken: (nextToken, expiresAt) => managerRef.current?.setToken(nextToken, expiresAt),\n        setHeatOverlay: (enabled) => managerRef.current?.setHeatOverlay(enabled),\n        setFollowLive: (enabled) => managerRef.current?.setFollowLive(enabled),\n        setTrendWindow: (windowMinutes) => managerRef.current?.setTrendWindow(windowMinutes)\n          ?? Promise.reject(new Error('not ready')),\n        enterFullscreen: () => managerRef.current?.enterFullscreen() ?? Promise.resolve(),\n        exitFullscreen: () => managerRef.current?.exitFullscreen() ?? Promise.resolve(),\n        isFullscreen: () => managerRef.current?.isFullscreen() ?? false,\n        block: (labels, opts) => managerRef.current?.block(labels, opts) ?? Promise.resolve(),\n        unblock: (labels) => managerRef.current?.unblock(labels) ?? Promise.resolve(),\n        unblockAll: () => managerRef.current?.unblockAll() ?? Promise.resolve(),\n        cancelBooking: (labels, bookingRef) => managerRef.current?.cancelBooking(labels, bookingRef) ?? Promise.resolve(),\n        setCategory: (categoryKey, labels) => managerRef.current?.setCategory(categoryKey, labels) ?? Promise.resolve(),\n        setTableBooking: (tableIds, nextMode, bounds) => managerRef.current?.setTableBooking(tableIds, nextMode, bounds)\n          ?? Promise.resolve(),\n        selectAll: () => managerRef.current?.selectAll() ?? [],\n        selectSection: (id) => managerRef.current?.selectSection(id) ?? [],\n        selectByLabels: (labels) => managerRef.current?.selectByLabels(labels) ?? [],\n        selectObjects: (labels) => managerRef.current?.selectObjects(labels) ?? [],\n        deselectObjects: (labels) => managerRef.current?.deselectObjects(labels) ?? [],\n        selectCategories: (keys) => managerRef.current?.selectCategories(keys) ?? [],\n        deselectCategories: (keys) => managerRef.current?.deselectCategories(keys) ?? [],\n        setSelectableObjects: (labels) => managerRef.current?.setSelectableObjects(labels),\n        setUnavailableObjectsSelectable: (enabled) => managerRef.current?.setUnavailableObjectsSelectable(enabled),\n        setObjectSelectable: (predicate) => managerRef.current?.setObjectSelectable(predicate),\n        setMaxSelectedObjects: (max) => managerRef.current?.setMaxSelectedObjects(max),\n        setNumberOfPlacesToSelect: (required) => managerRef.current?.setNumberOfPlacesToSelect(required),\n        getSelectionValidity: () => managerRef.current?.getSelectionValidity() ?? null,\n        setFilteredSection: (label) => managerRef.current?.setFilteredSection(label) ?? [],\n        clearFilteredSection: () => managerRef.current?.clearFilteredSection(),\n        getFilteredSections: () => managerRef.current?.getFilteredSections() ?? [],\n        clearSelection: () => managerRef.current?.clearSelection(),\n        getSelection: () => managerRef.current?.getSelection() ?? [],\n        getReport: () => managerRef.current?.getReport() ?? Promise.reject(new Error('not ready')),\n        getControlRoomSnapshot: (windowMinutes) => managerRef.current?.getControlRoomSnapshot(windowMinutes)\n          ?? Promise.reject(new Error('not ready')),\n        getLog: (opts) => managerRef.current?.getLog(opts) ?? Promise.resolve({ entries: [], nextBefore: null }),\n        getConnection: () => managerRef.current?.getConnection() ?? null,\n        setHoldTtl: (ms) => managerRef.current?.setHoldTtl(ms) ?? Promise.resolve(),\n        zoomToFit: () => managerRef.current?.zoomToFit(),\n      }),\n      [],\n    );\n\n    return <div ref={containerRef} className={className} style={style} />;\n  },\n);\n"],"mappings":"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","names":["SeatManager","CoreSeatManager"]}