@ericchen1990/pano-view 3.7.0 → 3.8.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.mts CHANGED
@@ -1118,7 +1118,7 @@ declare function Scenes({ maxTextureMemoryMb, maxConcurrentTileLoads, activeScen
1118
1118
 
1119
1119
  type AssetUrlContext = {
1120
1120
  defaultUrl: string;
1121
- kind: "tile" | "preview" | "hotspot";
1121
+ kind: "tile" | "preview" | "hotspot" | "map";
1122
1122
  sceneId: string;
1123
1123
  hotspotId?: string;
1124
1124
  };
@@ -1415,6 +1415,106 @@ type ProjectHotspotDefinition = HotspotDefinition & {
1415
1415
  };
1416
1416
  declare function resolveHotspotAssets(hotspot: ProjectHotspotDefinition, baseUrl: string, sceneId: string, resolver?: AssetUrlResolver): ProjectHotspotDefinition;
1417
1417
 
1418
+ type PanoMapCorner = "top-left" | "top-right" | "bottom-left" | "bottom-right";
1419
+ type PanoMapGradientStop = {
1420
+ offset: number;
1421
+ color: string;
1422
+ opacity?: number;
1423
+ };
1424
+ type PanoMapSectorGradient = {
1425
+ type: "radial" | "linear";
1426
+ stops: PanoMapGradientStop[];
1427
+ };
1428
+ type PanoMapSectorDefinition = {
1429
+ /** Sector opening angle in degrees. */
1430
+ angle: number;
1431
+ /** Sector radius in CSS pixels; does not scale with the floor image. */
1432
+ radius: number;
1433
+ /** When true, sector angle follows the current horizontal FOV. */
1434
+ followFov?: boolean;
1435
+ /** Solid fill color when `gradient` is omitted. */
1436
+ color?: string;
1437
+ /**
1438
+ * Overall fill opacity in [0, 1].
1439
+ * Applies in both solid and gradient modes; gradient stop opacities only
1440
+ * describe the relative fade shape and are normalized against this value.
1441
+ */
1442
+ opacity?: number;
1443
+ /** Optional sector outline color. */
1444
+ strokeColor?: string;
1445
+ /** Outline width in CSS pixels. */
1446
+ strokeWidth?: number;
1447
+ /** Outline opacity in [0, 1]. Defaults to 1 when stroke is set. */
1448
+ strokeOpacity?: number;
1449
+ /**
1450
+ * Optional fill gradient. When omitted, the sector uses a solid `color`.
1451
+ * Stop colors are independent of `color` unless the author keeps them in sync.
1452
+ */
1453
+ gradient?: PanoMapSectorGradient;
1454
+ };
1455
+ type PanoMapSpotDefinition = {
1456
+ id: string;
1457
+ sceneId: string;
1458
+ /** Normalized image X in [0, 1], origin at the top-left. */
1459
+ x: number;
1460
+ /** Normalized image Y in [0, 1], origin at the top-left. */
1461
+ y: number;
1462
+ /**
1463
+ * Clockwise degrees from image up when viewer yaw is 0.
1464
+ * Runtime sector rotation is `heading + yaw`.
1465
+ */
1466
+ heading: number;
1467
+ icon?: string;
1468
+ };
1469
+ type PanoMapControlsDefinition = {
1470
+ /** Show expand/collapse on a docked panel. */
1471
+ collapse?: boolean;
1472
+ /** Show zoom-in and zoom-out buttons. */
1473
+ zoom?: boolean;
1474
+ };
1475
+ type PanoMapDockedPresentation = {
1476
+ mode: "docked";
1477
+ corner?: PanoMapCorner;
1478
+ width?: number;
1479
+ height?: number;
1480
+ offsetX?: number;
1481
+ offsetY?: number;
1482
+ };
1483
+ type PanoMapDialogPresentation = {
1484
+ mode: "dialog";
1485
+ corner?: PanoMapCorner;
1486
+ offsetX?: number;
1487
+ offsetY?: number;
1488
+ width?: number;
1489
+ height?: number;
1490
+ };
1491
+ type PanoMapPresentation = PanoMapDockedPresentation | PanoMapDialogPresentation;
1492
+ type PanoMapDefinition = {
1493
+ image: string;
1494
+ /**
1495
+ * Pointer interaction with the floor image.
1496
+ * - `fixed`: fit-only; no wheel/pan zoom (zoom buttons are also suppressed).
1497
+ * - `zoom`: wheel/pan zoom and optional zoom buttons.
1498
+ */
1499
+ interaction?: "fixed" | "zoom";
1500
+ presentation?: PanoMapPresentation;
1501
+ controls?: PanoMapControlsDefinition;
1502
+ /** Spot icon edge length in CSS pixels. */
1503
+ iconSize?: number;
1504
+ /**
1505
+ * Maximum zoom multiplier relative to the contain-fit scale.
1506
+ * Only applies when `interaction` is `"zoom"`. Defaults to 8.
1507
+ */
1508
+ maxScale?: number;
1509
+ spots: PanoMapSpotDefinition[];
1510
+ sector?: PanoMapSectorDefinition;
1511
+ };
1512
+ /** Parse an optional project floor plan. Scene IDs must already be collected. */
1513
+ declare function parsePanoMap(value: unknown, sceneIds: Set<string>, options?: {
1514
+ draft?: boolean;
1515
+ }): PanoMapDefinition | undefined;
1516
+ declare function resolvePanoMapAssets(map: PanoMapDefinition, baseUrl: string, resolveAssetUrl?: AssetUrlResolver): PanoMapDefinition;
1517
+
1418
1518
  type PanoProjectSceneDefinition = {
1419
1519
  id: string;
1420
1520
  title?: string;
@@ -1437,6 +1537,7 @@ type PanoProjectDefinition = {
1437
1537
  initialSceneId?: string;
1438
1538
  scenes: PanoProjectSceneDefinition[];
1439
1539
  popups?: ProjectPopupDefinition[];
1540
+ map?: PanoMapDefinition;
1440
1541
  };
1441
1542
  type LoadedProjectScene = {
1442
1543
  scene: TileScene | SphereTileScene;
@@ -1449,6 +1550,7 @@ type LoadedPanoProject = {
1449
1550
  initialSceneId: string;
1450
1551
  scenes: LoadedProjectScene[];
1451
1552
  popups?: ProjectPopupDefinition[];
1553
+ map?: PanoMapDefinition;
1452
1554
  };
1453
1555
  type LoadPanoProjectOptions = JsonRequestOptions & {
1454
1556
  /** Directory used for project-relative references. Required for object input. */
@@ -2037,4 +2139,94 @@ declare function vector3ToPanoPosition(vector: Pick<Vector3, "x" | "y" | "z">):
2037
2139
  declare const DEFAULT_HOTSPOT_TOOLTIP_OFFSET = 12;
2038
2140
  declare const DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE: Required<HotspotTooltipAppearance>;
2039
2141
 
2040
- export { type ArrowGraphic, type AssetUrlContext, type AssetUrlResolver, AudioHotspot, type AudioHotspotDefinition, type AudioHotspotErrorEvent, type AudioHotspotProps, type AudioPlaybackState, AutoRotate, type AutoRotateProps, BackgroundAudio, type BackgroundAudioController, type BackgroundAudioErrorEvent, type BackgroundAudioProps, type BackgroundAudioSnapshot, type BackgroundAudioSource, type CircleGraphic, type CubeFaceCode, type CubemapViewerConfig, DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE, DEFAULT_HOTSPOT_TOOLTIP_OFFSET, DEFAULT_PANO_CURSORS, DEFAULT_PANO_VIDEO_CAPTION_APPEARANCE, DEFAULT_PANO_VIDEO_CONTROLS_APPEARANCE, DEFAULT_PANO_VIDEO_PLAYBACK_RATES, DEFAULT_WEBVR_CHROME_APPEARANCE, DEFAULT_WEBVR_CURSOR_DWELL_MS, type DiamondGraphic, type GraphicDefinition, GraphicHotspot, type GraphicHotspotDefinition, type GraphicHotspotProps, Gyro, type GyroHandle, type GyroProps, type GyroTouchMode, type HotspotCommonProps, type HotspotDefinition, type HotspotDefinitionBase, type HotspotDragEvent, type HotspotInputSource, type HotspotInteractionEvent, type HotspotMode, type HotspotPointerEvents, type HotspotPosition, type HotspotScaleMode, type HotspotTooltipAppearance, type HotspotTooltipContent, type HotspotTooltipPlacement, type HotspotTooltipTrigger, IframeHotspot, type IframeHotspotDefinition, type IframeHotspotProps, type IframePointerPolicy, ImageHotspot, type ImageHotspotDefinition, type ImageHotspotProps, type JsonObject, type JsonRequestOptions, type JsonValue, type KeyboardControlAction, type KeyboardControlKeys, KeyboardControls, type KeyboardControlsProps, type LoadPanoProjectOptions, type LoadSceneFromJsonOptions, type LoadedPanoProject, type LoadedProjectScene, MAX_HOTSPOT_PITCH, MIN_PANO_CONTEXT_MENU_BACKGROUND_OPACITY, type MouseControlButton, MouseControls, type MouseControlsOptions, type MouseControlsProps, PANO_FILTER_PRESETS, type PanoColorMatrix, PanoContextMenu, type PanoContextMenuActionItem, type PanoContextMenuAppearance, type PanoContextMenuEntry, type PanoContextMenuItem, type PanoContextMenuPresetActions, type PanoContextMenuPresetId, type PanoContextMenuPresetRef, type PanoContextMenuPresets, type PanoContextMenuProps, type PanoContextMenuRenderProps, type PanoContextMenuSelectContext, type PanoContextMenuSeparatorItem, type PanoCursor, type PanoCursors, PanoDataError, type PanoDataErrorCode, type PanoEventBus, type PanoEventListener, type PanoEventMap, type PanoEventType, PanoEvents, type PanoEventsProps, PanoFilter, type PanoFilterPreset, type PanoFilterProps, type PanoMediaActivationControls, type PanoMediaActivationOptions, PanoOverlayPortalProvider, type PanoOverlayRenderContext, type PanoProjectDefinition, type PanoProjectSceneDefinition, type PanoResizeEvent, PanoVideo, type PanoVideoCaptionAppearance, type PanoVideoController, PanoVideoControls, type PanoVideoControlsAppearance, type PanoVideoControlsProps, type PanoVideoErrorEvent, type PanoVideoErrorSource, type PanoVideoPlaybackSnapshot, type PanoVideoProps, type PanoVideoSource, type PanoVideoTrack, type PanoVideoTrackKind, type PanoVideoVariant, type PanoViewEasing, type PanoViewLimits, type PanoViewLookToOptions, type PanoViewNavigationOptions, type PanoViewNavigationResult, PanoViewer, type PanoViewerHandle, type PanoViewerProps, type PanoViewerState, type PanoWheelEvent, type PanoramaControlsOptions, type PanoramaPointerEvent, type PointHotspotDefinition, type PointHotspotDefinitionBase, PolygonHotspot, type PolygonHotspotDefinition, type PolygonHotspotProps, type PolygonValidationCode, type PolygonValidationIssue, type PolygonVerticesChangeEvent, PolylineHotspot, type PolylineHotspotDefinition, type PolylineHotspotProps, type PolylineValidationIssue, type PolylineVerticesChangeEvent, type PopupAssetUrlContext, type PopupAssetUrlResolver, type ProjectCustomActionEvent, type ProjectCustomHotspotAction, type ProjectHotspotAction, type ProjectHotspotClickEvent, type ProjectHotspotDefinition, type ProjectHotspotErrorEvent, type ProjectHotspotEvent, type ProjectHotspotRenderContext, type ProjectHotspotTrigger, type ProjectPopupBlock, type ProjectPopupDefinition, type ProjectPopupRequestEvent, ProjectScenes, type ProjectScenesProps, type RectangleGraphic, type RingGraphic, type Scene, type SceneFromViewerConfigOptions, type SceneTransition, type SceneTransitionEndEvent, type SceneTransitionErrorEvent, type SceneTransitionPreset, Scenes, type ScenesController, type ScenesProps, type SequenceFrameDirection, type SequenceFrameEvent, SequenceHotspot, type SequenceHotspotDefinition, type SequenceHotspotErrorEvent, type SequenceHotspotProps, type SequenceLoadProgress, type SequencePlaybackState, type SetPanoViewerOptions, Sphere, type SphereProps, type SphereScene, SphereTile, type SphereTileAddress, type SphereTileLevel, type SphereTileLoadError, type SphereTileMultiresConfig, type SphereTileProps, type SphereTileScene, type SphereViewerConfig, type StarGraphic, type SvgGraphic, type SvgPathGraphic, TextHotspot, type TextHotspotAlign, type TextHotspotDefinition, type TextHotspotFontStyle, type TextHotspotProps, type TextHotspotStyle, type TextHotspotVerticalAlign, type TextHotspotWhiteSpace, Tile, type TileAddress, type TileLoadError, type TileLoadProgress, type TileMultiresConfig, type TileProps, type TileScene, TouchControls, type TouchControlsOptions, type TouchControlsProps, type TriangleGraphic, type UsePanoViewerResult, VideoHotspot, type VideoHotspotDefinition, type VideoHotspotErrorEvent, type VideoHotspotProps, type VideoPlaybackState, type ViewInteractionEvent, type ViewInteractionSource, type ViewerConfig, type ViewerDocument, WEBVR_PROFILES, WEBVR_PROFILE_IDS, WebVR, type WebVRChrome, type WebVRChromeAppearance, type WebVRHandle, type WebVRMode, type WebVRProfile, type WebVRProfileId, type WebVRProps, type WebVRSettings, clampPanoPitch, composePanoContextMenuItems, createDefaultPanoContextMenuItems, createPanoContextMenuPresets, cycleSceneId, hotspotAction, loadPanoProject, loadSceneFromJson, normalizePanoPosition, normalizePanoYaw, panoPositionToVector3, parsePanoProject, projectHotspotTriggers, resolvePanoContextMenuEntries, resolveHotspotAssets as resolveProjectHotspotAssets, resolveProjectPopupAssets, sceneFromViewerConfig, setHotspotAction, unwrapPolygonVertices, usePanoEvents, usePanoModal, usePanoOverlay, usePanoViewer, validatePolygonVertices, validatePolylineVertices, vector3ToPanoPosition };
2142
+ type PanoMapEditChange = {
2143
+ spots?: PanoMapSpotDefinition[];
2144
+ selectedSpotId?: string | null;
2145
+ };
2146
+ type PanoMapProps = {
2147
+ map: PanoMapDefinition;
2148
+ activeSceneId?: string | null;
2149
+ onSelectScene?: (sceneId: string, spot: PanoMapSpotDefinition) => void;
2150
+ /** Controlled viewer state. When omitted, subscribe to the viewer event bus. */
2151
+ view?: PanoViewerState;
2152
+ mode?: "view" | "edit";
2153
+ selectedSpotId?: string | null;
2154
+ onSelectedSpotIdChange?: (spotId: string | null) => void;
2155
+ onEditChange?: (change: PanoMapEditChange) => void;
2156
+ /** Scene chosen before clicking the map to place a new spot. */
2157
+ placementSceneId?: string | null;
2158
+ className?: string;
2159
+ style?: CSSProperties;
2160
+ /** Override control visibility from the map document. */
2161
+ showZoomControls?: boolean;
2162
+ showCollapseControl?: boolean;
2163
+ collapsed?: boolean;
2164
+ onCollapsedChange?: (collapsed: boolean) => void;
2165
+ /** Extra chrome rendered above the map surface. */
2166
+ renderChrome?: (controls: ReactNode) => ReactNode;
2167
+ };
2168
+ /**
2169
+ * Floor-plan map surface. Fills its parent; hosts decide docked vs dialog chrome.
2170
+ * Icons and sectors keep CSS-pixel size while the background image zooms.
2171
+ */
2172
+ declare function PanoMap({ map, activeSceneId, onSelectScene, view: controlledView, mode, selectedSpotId, onSelectedSpotIdChange, onEditChange, placementSceneId, className, style, showZoomControls, showCollapseControl, collapsed: controlledCollapsed, onCollapsedChange, renderChrome, }: PanoMapProps): react.JSX.Element;
2173
+
2174
+ type PanoMapOverlayProps = {
2175
+ map: PanoMapDefinition;
2176
+ activeSceneId?: string | null;
2177
+ onSelectScene?: (sceneId: string, spot: PanoMapSpotDefinition) => void;
2178
+ view?: PanoViewerState;
2179
+ mode?: PanoMapProps["mode"];
2180
+ selectedSpotId?: string | null;
2181
+ onSelectedSpotIdChange?: (spotId: string | null) => void;
2182
+ onEditChange?: (change: PanoMapEditChange) => void;
2183
+ placementSceneId?: string | null;
2184
+ /** Force presentation while authoring, ignoring document presentation temporarily. */
2185
+ presentationOverride?: PanoMapDefinition["presentation"];
2186
+ openLabel?: string;
2187
+ closeLabel?: string;
2188
+ title?: string;
2189
+ className?: string;
2190
+ style?: CSSProperties;
2191
+ /** When true, fill a large authoring surface instead of visitor presentation. */
2192
+ editorSurface?: boolean;
2193
+ };
2194
+ /**
2195
+ * Visitor-facing map chrome for `PanoViewer.renderOverlay`.
2196
+ * Docked panels stay in a corner; dialog mode opens the same map in a modal.
2197
+ */
2198
+ declare function PanoMapOverlay({ map, activeSceneId, onSelectScene, view, mode, selectedSpotId, onSelectedSpotIdChange, onEditChange, placementSceneId, presentationOverride, openLabel, closeLabel, title, className, style, editorSurface, }: PanoMapOverlayProps): react.JSX.Element;
2199
+
2200
+ type MapRect = {
2201
+ left: number;
2202
+ top: number;
2203
+ width: number;
2204
+ height: number;
2205
+ };
2206
+ type MapPoint = {
2207
+ x: number;
2208
+ y: number;
2209
+ };
2210
+ type MapViewport = {
2211
+ /** Image pixel size after contain fitting, before user zoom. */
2212
+ fit: MapRect;
2213
+ /** User zoom relative to fit (1 = fitted). */
2214
+ scale: number;
2215
+ /** Pan in container pixels applied after scale around the fit origin. */
2216
+ panX: number;
2217
+ panY: number;
2218
+ };
2219
+ /** Clockwise degrees from image up for a sector when viewer yaw is `yaw`. */
2220
+ declare function sectorRotation(heading: number, yaw: number): number;
2221
+ /** Approximate horizontal FOV from vertical FOV and container aspect ratio. */
2222
+ declare function horizontalFov(verticalFov: number, aspect: number): number;
2223
+ /** Fit an image into a container with object-fit: contain semantics. */
2224
+ declare function containRect(containerWidth: number, containerHeight: number, imageWidth: number, imageHeight: number): MapRect;
2225
+ /** Project a normalized image point into container CSS pixels. */
2226
+ declare function imagePointToContainer(point: MapPoint, viewport: MapViewport): MapPoint;
2227
+ /** Convert a container pointer into a normalized image point. */
2228
+ declare function containerPointToImage(point: MapPoint, viewport: MapViewport): MapPoint | null;
2229
+ /** Clockwise degrees from image up for a vector in container space. */
2230
+ declare function headingFromVector(dx: number, dy: number): number;
2231
+
2232
+ export { type ArrowGraphic, type AssetUrlContext, type AssetUrlResolver, AudioHotspot, type AudioHotspotDefinition, type AudioHotspotErrorEvent, type AudioHotspotProps, type AudioPlaybackState, AutoRotate, type AutoRotateProps, BackgroundAudio, type BackgroundAudioController, type BackgroundAudioErrorEvent, type BackgroundAudioProps, type BackgroundAudioSnapshot, type BackgroundAudioSource, type CircleGraphic, type CubeFaceCode, type CubemapViewerConfig, DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE, DEFAULT_HOTSPOT_TOOLTIP_OFFSET, DEFAULT_PANO_CURSORS, DEFAULT_PANO_VIDEO_CAPTION_APPEARANCE, DEFAULT_PANO_VIDEO_CONTROLS_APPEARANCE, DEFAULT_PANO_VIDEO_PLAYBACK_RATES, DEFAULT_WEBVR_CHROME_APPEARANCE, DEFAULT_WEBVR_CURSOR_DWELL_MS, type DiamondGraphic, type GraphicDefinition, GraphicHotspot, type GraphicHotspotDefinition, type GraphicHotspotProps, Gyro, type GyroHandle, type GyroProps, type GyroTouchMode, type HotspotCommonProps, type HotspotDefinition, type HotspotDefinitionBase, type HotspotDragEvent, type HotspotInputSource, type HotspotInteractionEvent, type HotspotMode, type HotspotPointerEvents, type HotspotPosition, type HotspotScaleMode, type HotspotTooltipAppearance, type HotspotTooltipContent, type HotspotTooltipPlacement, type HotspotTooltipTrigger, IframeHotspot, type IframeHotspotDefinition, type IframeHotspotProps, type IframePointerPolicy, ImageHotspot, type ImageHotspotDefinition, type ImageHotspotProps, type JsonObject, type JsonRequestOptions, type JsonValue, type KeyboardControlAction, type KeyboardControlKeys, KeyboardControls, type KeyboardControlsProps, type LoadPanoProjectOptions, type LoadSceneFromJsonOptions, type LoadedPanoProject, type LoadedProjectScene, MAX_HOTSPOT_PITCH, MIN_PANO_CONTEXT_MENU_BACKGROUND_OPACITY, type MouseControlButton, MouseControls, type MouseControlsOptions, type MouseControlsProps, PANO_FILTER_PRESETS, type PanoColorMatrix, PanoContextMenu, type PanoContextMenuActionItem, type PanoContextMenuAppearance, type PanoContextMenuEntry, type PanoContextMenuItem, type PanoContextMenuPresetActions, type PanoContextMenuPresetId, type PanoContextMenuPresetRef, type PanoContextMenuPresets, type PanoContextMenuProps, type PanoContextMenuRenderProps, type PanoContextMenuSelectContext, type PanoContextMenuSeparatorItem, type PanoCursor, type PanoCursors, PanoDataError, type PanoDataErrorCode, type PanoEventBus, type PanoEventListener, type PanoEventMap, type PanoEventType, PanoEvents, type PanoEventsProps, PanoFilter, type PanoFilterPreset, type PanoFilterProps, PanoMap, type PanoMapControlsDefinition, type PanoMapCorner, type PanoMapDefinition, type PanoMapDialogPresentation, type PanoMapDockedPresentation, type PanoMapEditChange, type PanoMapGradientStop, PanoMapOverlay, type PanoMapOverlayProps, type PanoMapPresentation, type PanoMapProps, type PanoMapSectorDefinition, type PanoMapSectorGradient, type PanoMapSpotDefinition, type PanoMediaActivationControls, type PanoMediaActivationOptions, PanoOverlayPortalProvider, type PanoOverlayRenderContext, type PanoProjectDefinition, type PanoProjectSceneDefinition, type PanoResizeEvent, PanoVideo, type PanoVideoCaptionAppearance, type PanoVideoController, PanoVideoControls, type PanoVideoControlsAppearance, type PanoVideoControlsProps, type PanoVideoErrorEvent, type PanoVideoErrorSource, type PanoVideoPlaybackSnapshot, type PanoVideoProps, type PanoVideoSource, type PanoVideoTrack, type PanoVideoTrackKind, type PanoVideoVariant, type PanoViewEasing, type PanoViewLimits, type PanoViewLookToOptions, type PanoViewNavigationOptions, type PanoViewNavigationResult, PanoViewer, type PanoViewerHandle, type PanoViewerProps, type PanoViewerState, type PanoWheelEvent, type PanoramaControlsOptions, type PanoramaPointerEvent, type PointHotspotDefinition, type PointHotspotDefinitionBase, PolygonHotspot, type PolygonHotspotDefinition, type PolygonHotspotProps, type PolygonValidationCode, type PolygonValidationIssue, type PolygonVerticesChangeEvent, PolylineHotspot, type PolylineHotspotDefinition, type PolylineHotspotProps, type PolylineValidationIssue, type PolylineVerticesChangeEvent, type PopupAssetUrlContext, type PopupAssetUrlResolver, type ProjectCustomActionEvent, type ProjectCustomHotspotAction, type ProjectHotspotAction, type ProjectHotspotClickEvent, type ProjectHotspotDefinition, type ProjectHotspotErrorEvent, type ProjectHotspotEvent, type ProjectHotspotRenderContext, type ProjectHotspotTrigger, type ProjectPopupBlock, type ProjectPopupDefinition, type ProjectPopupRequestEvent, ProjectScenes, type ProjectScenesProps, type RectangleGraphic, type RingGraphic, type Scene, type SceneFromViewerConfigOptions, type SceneTransition, type SceneTransitionEndEvent, type SceneTransitionErrorEvent, type SceneTransitionPreset, Scenes, type ScenesController, type ScenesProps, type SequenceFrameDirection, type SequenceFrameEvent, SequenceHotspot, type SequenceHotspotDefinition, type SequenceHotspotErrorEvent, type SequenceHotspotProps, type SequenceLoadProgress, type SequencePlaybackState, type SetPanoViewerOptions, Sphere, type SphereProps, type SphereScene, SphereTile, type SphereTileAddress, type SphereTileLevel, type SphereTileLoadError, type SphereTileMultiresConfig, type SphereTileProps, type SphereTileScene, type SphereViewerConfig, type StarGraphic, type SvgGraphic, type SvgPathGraphic, TextHotspot, type TextHotspotAlign, type TextHotspotDefinition, type TextHotspotFontStyle, type TextHotspotProps, type TextHotspotStyle, type TextHotspotVerticalAlign, type TextHotspotWhiteSpace, Tile, type TileAddress, type TileLoadError, type TileLoadProgress, type TileMultiresConfig, type TileProps, type TileScene, TouchControls, type TouchControlsOptions, type TouchControlsProps, type TriangleGraphic, type UsePanoViewerResult, VideoHotspot, type VideoHotspotDefinition, type VideoHotspotErrorEvent, type VideoHotspotProps, type VideoPlaybackState, type ViewInteractionEvent, type ViewInteractionSource, type ViewerConfig, type ViewerDocument, WEBVR_PROFILES, WEBVR_PROFILE_IDS, WebVR, type WebVRChrome, type WebVRChromeAppearance, type WebVRHandle, type WebVRMode, type WebVRProfile, type WebVRProfileId, type WebVRProps, type WebVRSettings, clampPanoPitch, composePanoContextMenuItems, containRect, containerPointToImage, createDefaultPanoContextMenuItems, createPanoContextMenuPresets, cycleSceneId, headingFromVector, horizontalFov, hotspotAction, imagePointToContainer, loadPanoProject, loadSceneFromJson, normalizePanoPosition, normalizePanoYaw, panoPositionToVector3, parsePanoMap, parsePanoProject, projectHotspotTriggers, resolvePanoContextMenuEntries, resolvePanoMapAssets, resolveHotspotAssets as resolveProjectHotspotAssets, resolveProjectPopupAssets, sceneFromViewerConfig, sectorRotation, setHotspotAction, unwrapPolygonVertices, usePanoEvents, usePanoModal, usePanoOverlay, usePanoViewer, validatePolygonVertices, validatePolylineVertices, vector3ToPanoPosition };
package/dist/index.d.ts CHANGED
@@ -1118,7 +1118,7 @@ declare function Scenes({ maxTextureMemoryMb, maxConcurrentTileLoads, activeScen
1118
1118
 
1119
1119
  type AssetUrlContext = {
1120
1120
  defaultUrl: string;
1121
- kind: "tile" | "preview" | "hotspot";
1121
+ kind: "tile" | "preview" | "hotspot" | "map";
1122
1122
  sceneId: string;
1123
1123
  hotspotId?: string;
1124
1124
  };
@@ -1415,6 +1415,106 @@ type ProjectHotspotDefinition = HotspotDefinition & {
1415
1415
  };
1416
1416
  declare function resolveHotspotAssets(hotspot: ProjectHotspotDefinition, baseUrl: string, sceneId: string, resolver?: AssetUrlResolver): ProjectHotspotDefinition;
1417
1417
 
1418
+ type PanoMapCorner = "top-left" | "top-right" | "bottom-left" | "bottom-right";
1419
+ type PanoMapGradientStop = {
1420
+ offset: number;
1421
+ color: string;
1422
+ opacity?: number;
1423
+ };
1424
+ type PanoMapSectorGradient = {
1425
+ type: "radial" | "linear";
1426
+ stops: PanoMapGradientStop[];
1427
+ };
1428
+ type PanoMapSectorDefinition = {
1429
+ /** Sector opening angle in degrees. */
1430
+ angle: number;
1431
+ /** Sector radius in CSS pixels; does not scale with the floor image. */
1432
+ radius: number;
1433
+ /** When true, sector angle follows the current horizontal FOV. */
1434
+ followFov?: boolean;
1435
+ /** Solid fill color when `gradient` is omitted. */
1436
+ color?: string;
1437
+ /**
1438
+ * Overall fill opacity in [0, 1].
1439
+ * Applies in both solid and gradient modes; gradient stop opacities only
1440
+ * describe the relative fade shape and are normalized against this value.
1441
+ */
1442
+ opacity?: number;
1443
+ /** Optional sector outline color. */
1444
+ strokeColor?: string;
1445
+ /** Outline width in CSS pixels. */
1446
+ strokeWidth?: number;
1447
+ /** Outline opacity in [0, 1]. Defaults to 1 when stroke is set. */
1448
+ strokeOpacity?: number;
1449
+ /**
1450
+ * Optional fill gradient. When omitted, the sector uses a solid `color`.
1451
+ * Stop colors are independent of `color` unless the author keeps them in sync.
1452
+ */
1453
+ gradient?: PanoMapSectorGradient;
1454
+ };
1455
+ type PanoMapSpotDefinition = {
1456
+ id: string;
1457
+ sceneId: string;
1458
+ /** Normalized image X in [0, 1], origin at the top-left. */
1459
+ x: number;
1460
+ /** Normalized image Y in [0, 1], origin at the top-left. */
1461
+ y: number;
1462
+ /**
1463
+ * Clockwise degrees from image up when viewer yaw is 0.
1464
+ * Runtime sector rotation is `heading + yaw`.
1465
+ */
1466
+ heading: number;
1467
+ icon?: string;
1468
+ };
1469
+ type PanoMapControlsDefinition = {
1470
+ /** Show expand/collapse on a docked panel. */
1471
+ collapse?: boolean;
1472
+ /** Show zoom-in and zoom-out buttons. */
1473
+ zoom?: boolean;
1474
+ };
1475
+ type PanoMapDockedPresentation = {
1476
+ mode: "docked";
1477
+ corner?: PanoMapCorner;
1478
+ width?: number;
1479
+ height?: number;
1480
+ offsetX?: number;
1481
+ offsetY?: number;
1482
+ };
1483
+ type PanoMapDialogPresentation = {
1484
+ mode: "dialog";
1485
+ corner?: PanoMapCorner;
1486
+ offsetX?: number;
1487
+ offsetY?: number;
1488
+ width?: number;
1489
+ height?: number;
1490
+ };
1491
+ type PanoMapPresentation = PanoMapDockedPresentation | PanoMapDialogPresentation;
1492
+ type PanoMapDefinition = {
1493
+ image: string;
1494
+ /**
1495
+ * Pointer interaction with the floor image.
1496
+ * - `fixed`: fit-only; no wheel/pan zoom (zoom buttons are also suppressed).
1497
+ * - `zoom`: wheel/pan zoom and optional zoom buttons.
1498
+ */
1499
+ interaction?: "fixed" | "zoom";
1500
+ presentation?: PanoMapPresentation;
1501
+ controls?: PanoMapControlsDefinition;
1502
+ /** Spot icon edge length in CSS pixels. */
1503
+ iconSize?: number;
1504
+ /**
1505
+ * Maximum zoom multiplier relative to the contain-fit scale.
1506
+ * Only applies when `interaction` is `"zoom"`. Defaults to 8.
1507
+ */
1508
+ maxScale?: number;
1509
+ spots: PanoMapSpotDefinition[];
1510
+ sector?: PanoMapSectorDefinition;
1511
+ };
1512
+ /** Parse an optional project floor plan. Scene IDs must already be collected. */
1513
+ declare function parsePanoMap(value: unknown, sceneIds: Set<string>, options?: {
1514
+ draft?: boolean;
1515
+ }): PanoMapDefinition | undefined;
1516
+ declare function resolvePanoMapAssets(map: PanoMapDefinition, baseUrl: string, resolveAssetUrl?: AssetUrlResolver): PanoMapDefinition;
1517
+
1418
1518
  type PanoProjectSceneDefinition = {
1419
1519
  id: string;
1420
1520
  title?: string;
@@ -1437,6 +1537,7 @@ type PanoProjectDefinition = {
1437
1537
  initialSceneId?: string;
1438
1538
  scenes: PanoProjectSceneDefinition[];
1439
1539
  popups?: ProjectPopupDefinition[];
1540
+ map?: PanoMapDefinition;
1440
1541
  };
1441
1542
  type LoadedProjectScene = {
1442
1543
  scene: TileScene | SphereTileScene;
@@ -1449,6 +1550,7 @@ type LoadedPanoProject = {
1449
1550
  initialSceneId: string;
1450
1551
  scenes: LoadedProjectScene[];
1451
1552
  popups?: ProjectPopupDefinition[];
1553
+ map?: PanoMapDefinition;
1452
1554
  };
1453
1555
  type LoadPanoProjectOptions = JsonRequestOptions & {
1454
1556
  /** Directory used for project-relative references. Required for object input. */
@@ -2037,4 +2139,94 @@ declare function vector3ToPanoPosition(vector: Pick<Vector3, "x" | "y" | "z">):
2037
2139
  declare const DEFAULT_HOTSPOT_TOOLTIP_OFFSET = 12;
2038
2140
  declare const DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE: Required<HotspotTooltipAppearance>;
2039
2141
 
2040
- export { type ArrowGraphic, type AssetUrlContext, type AssetUrlResolver, AudioHotspot, type AudioHotspotDefinition, type AudioHotspotErrorEvent, type AudioHotspotProps, type AudioPlaybackState, AutoRotate, type AutoRotateProps, BackgroundAudio, type BackgroundAudioController, type BackgroundAudioErrorEvent, type BackgroundAudioProps, type BackgroundAudioSnapshot, type BackgroundAudioSource, type CircleGraphic, type CubeFaceCode, type CubemapViewerConfig, DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE, DEFAULT_HOTSPOT_TOOLTIP_OFFSET, DEFAULT_PANO_CURSORS, DEFAULT_PANO_VIDEO_CAPTION_APPEARANCE, DEFAULT_PANO_VIDEO_CONTROLS_APPEARANCE, DEFAULT_PANO_VIDEO_PLAYBACK_RATES, DEFAULT_WEBVR_CHROME_APPEARANCE, DEFAULT_WEBVR_CURSOR_DWELL_MS, type DiamondGraphic, type GraphicDefinition, GraphicHotspot, type GraphicHotspotDefinition, type GraphicHotspotProps, Gyro, type GyroHandle, type GyroProps, type GyroTouchMode, type HotspotCommonProps, type HotspotDefinition, type HotspotDefinitionBase, type HotspotDragEvent, type HotspotInputSource, type HotspotInteractionEvent, type HotspotMode, type HotspotPointerEvents, type HotspotPosition, type HotspotScaleMode, type HotspotTooltipAppearance, type HotspotTooltipContent, type HotspotTooltipPlacement, type HotspotTooltipTrigger, IframeHotspot, type IframeHotspotDefinition, type IframeHotspotProps, type IframePointerPolicy, ImageHotspot, type ImageHotspotDefinition, type ImageHotspotProps, type JsonObject, type JsonRequestOptions, type JsonValue, type KeyboardControlAction, type KeyboardControlKeys, KeyboardControls, type KeyboardControlsProps, type LoadPanoProjectOptions, type LoadSceneFromJsonOptions, type LoadedPanoProject, type LoadedProjectScene, MAX_HOTSPOT_PITCH, MIN_PANO_CONTEXT_MENU_BACKGROUND_OPACITY, type MouseControlButton, MouseControls, type MouseControlsOptions, type MouseControlsProps, PANO_FILTER_PRESETS, type PanoColorMatrix, PanoContextMenu, type PanoContextMenuActionItem, type PanoContextMenuAppearance, type PanoContextMenuEntry, type PanoContextMenuItem, type PanoContextMenuPresetActions, type PanoContextMenuPresetId, type PanoContextMenuPresetRef, type PanoContextMenuPresets, type PanoContextMenuProps, type PanoContextMenuRenderProps, type PanoContextMenuSelectContext, type PanoContextMenuSeparatorItem, type PanoCursor, type PanoCursors, PanoDataError, type PanoDataErrorCode, type PanoEventBus, type PanoEventListener, type PanoEventMap, type PanoEventType, PanoEvents, type PanoEventsProps, PanoFilter, type PanoFilterPreset, type PanoFilterProps, type PanoMediaActivationControls, type PanoMediaActivationOptions, PanoOverlayPortalProvider, type PanoOverlayRenderContext, type PanoProjectDefinition, type PanoProjectSceneDefinition, type PanoResizeEvent, PanoVideo, type PanoVideoCaptionAppearance, type PanoVideoController, PanoVideoControls, type PanoVideoControlsAppearance, type PanoVideoControlsProps, type PanoVideoErrorEvent, type PanoVideoErrorSource, type PanoVideoPlaybackSnapshot, type PanoVideoProps, type PanoVideoSource, type PanoVideoTrack, type PanoVideoTrackKind, type PanoVideoVariant, type PanoViewEasing, type PanoViewLimits, type PanoViewLookToOptions, type PanoViewNavigationOptions, type PanoViewNavigationResult, PanoViewer, type PanoViewerHandle, type PanoViewerProps, type PanoViewerState, type PanoWheelEvent, type PanoramaControlsOptions, type PanoramaPointerEvent, type PointHotspotDefinition, type PointHotspotDefinitionBase, PolygonHotspot, type PolygonHotspotDefinition, type PolygonHotspotProps, type PolygonValidationCode, type PolygonValidationIssue, type PolygonVerticesChangeEvent, PolylineHotspot, type PolylineHotspotDefinition, type PolylineHotspotProps, type PolylineValidationIssue, type PolylineVerticesChangeEvent, type PopupAssetUrlContext, type PopupAssetUrlResolver, type ProjectCustomActionEvent, type ProjectCustomHotspotAction, type ProjectHotspotAction, type ProjectHotspotClickEvent, type ProjectHotspotDefinition, type ProjectHotspotErrorEvent, type ProjectHotspotEvent, type ProjectHotspotRenderContext, type ProjectHotspotTrigger, type ProjectPopupBlock, type ProjectPopupDefinition, type ProjectPopupRequestEvent, ProjectScenes, type ProjectScenesProps, type RectangleGraphic, type RingGraphic, type Scene, type SceneFromViewerConfigOptions, type SceneTransition, type SceneTransitionEndEvent, type SceneTransitionErrorEvent, type SceneTransitionPreset, Scenes, type ScenesController, type ScenesProps, type SequenceFrameDirection, type SequenceFrameEvent, SequenceHotspot, type SequenceHotspotDefinition, type SequenceHotspotErrorEvent, type SequenceHotspotProps, type SequenceLoadProgress, type SequencePlaybackState, type SetPanoViewerOptions, Sphere, type SphereProps, type SphereScene, SphereTile, type SphereTileAddress, type SphereTileLevel, type SphereTileLoadError, type SphereTileMultiresConfig, type SphereTileProps, type SphereTileScene, type SphereViewerConfig, type StarGraphic, type SvgGraphic, type SvgPathGraphic, TextHotspot, type TextHotspotAlign, type TextHotspotDefinition, type TextHotspotFontStyle, type TextHotspotProps, type TextHotspotStyle, type TextHotspotVerticalAlign, type TextHotspotWhiteSpace, Tile, type TileAddress, type TileLoadError, type TileLoadProgress, type TileMultiresConfig, type TileProps, type TileScene, TouchControls, type TouchControlsOptions, type TouchControlsProps, type TriangleGraphic, type UsePanoViewerResult, VideoHotspot, type VideoHotspotDefinition, type VideoHotspotErrorEvent, type VideoHotspotProps, type VideoPlaybackState, type ViewInteractionEvent, type ViewInteractionSource, type ViewerConfig, type ViewerDocument, WEBVR_PROFILES, WEBVR_PROFILE_IDS, WebVR, type WebVRChrome, type WebVRChromeAppearance, type WebVRHandle, type WebVRMode, type WebVRProfile, type WebVRProfileId, type WebVRProps, type WebVRSettings, clampPanoPitch, composePanoContextMenuItems, createDefaultPanoContextMenuItems, createPanoContextMenuPresets, cycleSceneId, hotspotAction, loadPanoProject, loadSceneFromJson, normalizePanoPosition, normalizePanoYaw, panoPositionToVector3, parsePanoProject, projectHotspotTriggers, resolvePanoContextMenuEntries, resolveHotspotAssets as resolveProjectHotspotAssets, resolveProjectPopupAssets, sceneFromViewerConfig, setHotspotAction, unwrapPolygonVertices, usePanoEvents, usePanoModal, usePanoOverlay, usePanoViewer, validatePolygonVertices, validatePolylineVertices, vector3ToPanoPosition };
2142
+ type PanoMapEditChange = {
2143
+ spots?: PanoMapSpotDefinition[];
2144
+ selectedSpotId?: string | null;
2145
+ };
2146
+ type PanoMapProps = {
2147
+ map: PanoMapDefinition;
2148
+ activeSceneId?: string | null;
2149
+ onSelectScene?: (sceneId: string, spot: PanoMapSpotDefinition) => void;
2150
+ /** Controlled viewer state. When omitted, subscribe to the viewer event bus. */
2151
+ view?: PanoViewerState;
2152
+ mode?: "view" | "edit";
2153
+ selectedSpotId?: string | null;
2154
+ onSelectedSpotIdChange?: (spotId: string | null) => void;
2155
+ onEditChange?: (change: PanoMapEditChange) => void;
2156
+ /** Scene chosen before clicking the map to place a new spot. */
2157
+ placementSceneId?: string | null;
2158
+ className?: string;
2159
+ style?: CSSProperties;
2160
+ /** Override control visibility from the map document. */
2161
+ showZoomControls?: boolean;
2162
+ showCollapseControl?: boolean;
2163
+ collapsed?: boolean;
2164
+ onCollapsedChange?: (collapsed: boolean) => void;
2165
+ /** Extra chrome rendered above the map surface. */
2166
+ renderChrome?: (controls: ReactNode) => ReactNode;
2167
+ };
2168
+ /**
2169
+ * Floor-plan map surface. Fills its parent; hosts decide docked vs dialog chrome.
2170
+ * Icons and sectors keep CSS-pixel size while the background image zooms.
2171
+ */
2172
+ declare function PanoMap({ map, activeSceneId, onSelectScene, view: controlledView, mode, selectedSpotId, onSelectedSpotIdChange, onEditChange, placementSceneId, className, style, showZoomControls, showCollapseControl, collapsed: controlledCollapsed, onCollapsedChange, renderChrome, }: PanoMapProps): react.JSX.Element;
2173
+
2174
+ type PanoMapOverlayProps = {
2175
+ map: PanoMapDefinition;
2176
+ activeSceneId?: string | null;
2177
+ onSelectScene?: (sceneId: string, spot: PanoMapSpotDefinition) => void;
2178
+ view?: PanoViewerState;
2179
+ mode?: PanoMapProps["mode"];
2180
+ selectedSpotId?: string | null;
2181
+ onSelectedSpotIdChange?: (spotId: string | null) => void;
2182
+ onEditChange?: (change: PanoMapEditChange) => void;
2183
+ placementSceneId?: string | null;
2184
+ /** Force presentation while authoring, ignoring document presentation temporarily. */
2185
+ presentationOverride?: PanoMapDefinition["presentation"];
2186
+ openLabel?: string;
2187
+ closeLabel?: string;
2188
+ title?: string;
2189
+ className?: string;
2190
+ style?: CSSProperties;
2191
+ /** When true, fill a large authoring surface instead of visitor presentation. */
2192
+ editorSurface?: boolean;
2193
+ };
2194
+ /**
2195
+ * Visitor-facing map chrome for `PanoViewer.renderOverlay`.
2196
+ * Docked panels stay in a corner; dialog mode opens the same map in a modal.
2197
+ */
2198
+ declare function PanoMapOverlay({ map, activeSceneId, onSelectScene, view, mode, selectedSpotId, onSelectedSpotIdChange, onEditChange, placementSceneId, presentationOverride, openLabel, closeLabel, title, className, style, editorSurface, }: PanoMapOverlayProps): react.JSX.Element;
2199
+
2200
+ type MapRect = {
2201
+ left: number;
2202
+ top: number;
2203
+ width: number;
2204
+ height: number;
2205
+ };
2206
+ type MapPoint = {
2207
+ x: number;
2208
+ y: number;
2209
+ };
2210
+ type MapViewport = {
2211
+ /** Image pixel size after contain fitting, before user zoom. */
2212
+ fit: MapRect;
2213
+ /** User zoom relative to fit (1 = fitted). */
2214
+ scale: number;
2215
+ /** Pan in container pixels applied after scale around the fit origin. */
2216
+ panX: number;
2217
+ panY: number;
2218
+ };
2219
+ /** Clockwise degrees from image up for a sector when viewer yaw is `yaw`. */
2220
+ declare function sectorRotation(heading: number, yaw: number): number;
2221
+ /** Approximate horizontal FOV from vertical FOV and container aspect ratio. */
2222
+ declare function horizontalFov(verticalFov: number, aspect: number): number;
2223
+ /** Fit an image into a container with object-fit: contain semantics. */
2224
+ declare function containRect(containerWidth: number, containerHeight: number, imageWidth: number, imageHeight: number): MapRect;
2225
+ /** Project a normalized image point into container CSS pixels. */
2226
+ declare function imagePointToContainer(point: MapPoint, viewport: MapViewport): MapPoint;
2227
+ /** Convert a container pointer into a normalized image point. */
2228
+ declare function containerPointToImage(point: MapPoint, viewport: MapViewport): MapPoint | null;
2229
+ /** Clockwise degrees from image up for a vector in container space. */
2230
+ declare function headingFromVector(dx: number, dy: number): number;
2231
+
2232
+ export { type ArrowGraphic, type AssetUrlContext, type AssetUrlResolver, AudioHotspot, type AudioHotspotDefinition, type AudioHotspotErrorEvent, type AudioHotspotProps, type AudioPlaybackState, AutoRotate, type AutoRotateProps, BackgroundAudio, type BackgroundAudioController, type BackgroundAudioErrorEvent, type BackgroundAudioProps, type BackgroundAudioSnapshot, type BackgroundAudioSource, type CircleGraphic, type CubeFaceCode, type CubemapViewerConfig, DEFAULT_HOTSPOT_TOOLTIP_APPEARANCE, DEFAULT_HOTSPOT_TOOLTIP_OFFSET, DEFAULT_PANO_CURSORS, DEFAULT_PANO_VIDEO_CAPTION_APPEARANCE, DEFAULT_PANO_VIDEO_CONTROLS_APPEARANCE, DEFAULT_PANO_VIDEO_PLAYBACK_RATES, DEFAULT_WEBVR_CHROME_APPEARANCE, DEFAULT_WEBVR_CURSOR_DWELL_MS, type DiamondGraphic, type GraphicDefinition, GraphicHotspot, type GraphicHotspotDefinition, type GraphicHotspotProps, Gyro, type GyroHandle, type GyroProps, type GyroTouchMode, type HotspotCommonProps, type HotspotDefinition, type HotspotDefinitionBase, type HotspotDragEvent, type HotspotInputSource, type HotspotInteractionEvent, type HotspotMode, type HotspotPointerEvents, type HotspotPosition, type HotspotScaleMode, type HotspotTooltipAppearance, type HotspotTooltipContent, type HotspotTooltipPlacement, type HotspotTooltipTrigger, IframeHotspot, type IframeHotspotDefinition, type IframeHotspotProps, type IframePointerPolicy, ImageHotspot, type ImageHotspotDefinition, type ImageHotspotProps, type JsonObject, type JsonRequestOptions, type JsonValue, type KeyboardControlAction, type KeyboardControlKeys, KeyboardControls, type KeyboardControlsProps, type LoadPanoProjectOptions, type LoadSceneFromJsonOptions, type LoadedPanoProject, type LoadedProjectScene, MAX_HOTSPOT_PITCH, MIN_PANO_CONTEXT_MENU_BACKGROUND_OPACITY, type MouseControlButton, MouseControls, type MouseControlsOptions, type MouseControlsProps, PANO_FILTER_PRESETS, type PanoColorMatrix, PanoContextMenu, type PanoContextMenuActionItem, type PanoContextMenuAppearance, type PanoContextMenuEntry, type PanoContextMenuItem, type PanoContextMenuPresetActions, type PanoContextMenuPresetId, type PanoContextMenuPresetRef, type PanoContextMenuPresets, type PanoContextMenuProps, type PanoContextMenuRenderProps, type PanoContextMenuSelectContext, type PanoContextMenuSeparatorItem, type PanoCursor, type PanoCursors, PanoDataError, type PanoDataErrorCode, type PanoEventBus, type PanoEventListener, type PanoEventMap, type PanoEventType, PanoEvents, type PanoEventsProps, PanoFilter, type PanoFilterPreset, type PanoFilterProps, PanoMap, type PanoMapControlsDefinition, type PanoMapCorner, type PanoMapDefinition, type PanoMapDialogPresentation, type PanoMapDockedPresentation, type PanoMapEditChange, type PanoMapGradientStop, PanoMapOverlay, type PanoMapOverlayProps, type PanoMapPresentation, type PanoMapProps, type PanoMapSectorDefinition, type PanoMapSectorGradient, type PanoMapSpotDefinition, type PanoMediaActivationControls, type PanoMediaActivationOptions, PanoOverlayPortalProvider, type PanoOverlayRenderContext, type PanoProjectDefinition, type PanoProjectSceneDefinition, type PanoResizeEvent, PanoVideo, type PanoVideoCaptionAppearance, type PanoVideoController, PanoVideoControls, type PanoVideoControlsAppearance, type PanoVideoControlsProps, type PanoVideoErrorEvent, type PanoVideoErrorSource, type PanoVideoPlaybackSnapshot, type PanoVideoProps, type PanoVideoSource, type PanoVideoTrack, type PanoVideoTrackKind, type PanoVideoVariant, type PanoViewEasing, type PanoViewLimits, type PanoViewLookToOptions, type PanoViewNavigationOptions, type PanoViewNavigationResult, PanoViewer, type PanoViewerHandle, type PanoViewerProps, type PanoViewerState, type PanoWheelEvent, type PanoramaControlsOptions, type PanoramaPointerEvent, type PointHotspotDefinition, type PointHotspotDefinitionBase, PolygonHotspot, type PolygonHotspotDefinition, type PolygonHotspotProps, type PolygonValidationCode, type PolygonValidationIssue, type PolygonVerticesChangeEvent, PolylineHotspot, type PolylineHotspotDefinition, type PolylineHotspotProps, type PolylineValidationIssue, type PolylineVerticesChangeEvent, type PopupAssetUrlContext, type PopupAssetUrlResolver, type ProjectCustomActionEvent, type ProjectCustomHotspotAction, type ProjectHotspotAction, type ProjectHotspotClickEvent, type ProjectHotspotDefinition, type ProjectHotspotErrorEvent, type ProjectHotspotEvent, type ProjectHotspotRenderContext, type ProjectHotspotTrigger, type ProjectPopupBlock, type ProjectPopupDefinition, type ProjectPopupRequestEvent, ProjectScenes, type ProjectScenesProps, type RectangleGraphic, type RingGraphic, type Scene, type SceneFromViewerConfigOptions, type SceneTransition, type SceneTransitionEndEvent, type SceneTransitionErrorEvent, type SceneTransitionPreset, Scenes, type ScenesController, type ScenesProps, type SequenceFrameDirection, type SequenceFrameEvent, SequenceHotspot, type SequenceHotspotDefinition, type SequenceHotspotErrorEvent, type SequenceHotspotProps, type SequenceLoadProgress, type SequencePlaybackState, type SetPanoViewerOptions, Sphere, type SphereProps, type SphereScene, SphereTile, type SphereTileAddress, type SphereTileLevel, type SphereTileLoadError, type SphereTileMultiresConfig, type SphereTileProps, type SphereTileScene, type SphereViewerConfig, type StarGraphic, type SvgGraphic, type SvgPathGraphic, TextHotspot, type TextHotspotAlign, type TextHotspotDefinition, type TextHotspotFontStyle, type TextHotspotProps, type TextHotspotStyle, type TextHotspotVerticalAlign, type TextHotspotWhiteSpace, Tile, type TileAddress, type TileLoadError, type TileLoadProgress, type TileMultiresConfig, type TileProps, type TileScene, TouchControls, type TouchControlsOptions, type TouchControlsProps, type TriangleGraphic, type UsePanoViewerResult, VideoHotspot, type VideoHotspotDefinition, type VideoHotspotErrorEvent, type VideoHotspotProps, type VideoPlaybackState, type ViewInteractionEvent, type ViewInteractionSource, type ViewerConfig, type ViewerDocument, WEBVR_PROFILES, WEBVR_PROFILE_IDS, WebVR, type WebVRChrome, type WebVRChromeAppearance, type WebVRHandle, type WebVRMode, type WebVRProfile, type WebVRProfileId, type WebVRProps, type WebVRSettings, clampPanoPitch, composePanoContextMenuItems, containRect, containerPointToImage, createDefaultPanoContextMenuItems, createPanoContextMenuPresets, cycleSceneId, headingFromVector, horizontalFov, hotspotAction, imagePointToContainer, loadPanoProject, loadSceneFromJson, normalizePanoPosition, normalizePanoYaw, panoPositionToVector3, parsePanoMap, parsePanoProject, projectHotspotTriggers, resolvePanoContextMenuEntries, resolvePanoMapAssets, resolveHotspotAssets as resolveProjectHotspotAssets, resolveProjectPopupAssets, sceneFromViewerConfig, sectorRotation, setHotspotAction, unwrapPolygonVertices, usePanoEvents, usePanoModal, usePanoOverlay, usePanoViewer, validatePolygonVertices, validatePolylineVertices, vector3ToPanoPosition };