@liveroom-tech/react-immersive 1.3.4 → 1.3.5

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/README.md CHANGED
@@ -45,6 +45,7 @@ It also exports types for `ObjectBinding`, `ObjectBindingMaterial`, `ObjectActio
45
45
  - an exploded-view slider that slides each bound part outward from the model center to reveal interior/assembly structure through `showExplodeControls`
46
46
  - a cinematic auto-camera that glides the camera along authored waypoints (or a zero-config showcase orbit), like a film, through `cinematic` — with a play/pause control that yields the moment you touch the camera
47
47
  - a guided-tour control cluster (Previous/Stop/Next) for stepping through annotations, toggleable via `showAnnotationNavigation`
48
+ - optional annotation detail popups on marker hover via `showAnnotationOnHover`
48
49
  - a `sceneConfig` prop accepting the same scene-wide config (lighting, environment, background, post-processing, animations, annotations) authored by `BindingBuilder`'s Scene tab
49
50
  - render-loop and perf tuning through `renderMode`, `maxDpr`, `performanceProfile`, and compressed-asset decoder options (`dracoDecoderPath`, `ktx2TranscoderPath`, `meshopt`)
50
51
  - WebXR "View in your space" (AR) and "Enter VR" through `enableXR`, with tap-to-place, pinch-to-resize, and twist-to-rotate AR placement gestures
@@ -704,6 +705,7 @@ type Props = {
704
705
  arScaleMode?: "normalized" | "real-world";
705
706
  mobileHandoffUrl?: string;
706
707
  showAnnotationNavigation?: boolean;
708
+ showAnnotationOnHover?: boolean;
707
709
  };
708
710
  ```
709
711
 
@@ -1133,7 +1135,8 @@ true;
1133
1135
 
1134
1136
  ### `showDownloadButton`
1135
1137
 
1136
- Optional boolean that enables the download split-button (export GLB / export PNG screenshot).
1138
+ Optional boolean that enables the download split-button (export GLB, export PNG
1139
+ screenshot, or export the model's UV layout).
1137
1140
 
1138
1141
  Default:
1139
1142
 
@@ -1141,6 +1144,12 @@ Default:
1141
1144
  true;
1142
1145
  ```
1143
1146
 
1147
+ UV export downloads an editable 2048×2048 SVG UV-island outline when the model
1148
+ uses one material. For multi-material models it downloads a ZIP containing one
1149
+ SVG texture template per material. Meshes without a `uv` attribute are omitted;
1150
+ when the model has no UV coordinates, the viewer reports that no layout is
1151
+ available.
1152
+
1144
1153
  The bottom-right action bar renders when at least one of `showResetButton`, `showDownloadButton`, or (`showAnnotationNavigation` with annotations present) is `true`.
1145
1154
 
1146
1155
  ### `downloadFilename`
@@ -1516,6 +1525,23 @@ Default:
1516
1525
  true;
1517
1526
  ```
1518
1527
 
1528
+ ### `showAnnotationOnHover`
1529
+
1530
+ Optional boolean that temporarily opens an annotation's detail popup when the
1531
+ pointer hovers over its marker. Moving the pointer away closes the hover popup
1532
+ after a short grace period. Clicking a marker still locks its popup open until
1533
+ it is closed.
1534
+
1535
+ Default:
1536
+
1537
+ ```ts
1538
+ false;
1539
+ ```
1540
+
1541
+ ```tsx
1542
+ <ModelViewer {...props} showAnnotationOnHover />
1543
+ ```
1544
+
1519
1545
  ### Theming the scene objects / object binding panels
1520
1546
 
1521
1547
  The scene objects panel and object binding data panel read their colors,
package/dist/index.d.mts CHANGED
@@ -618,8 +618,9 @@ type ModelViewerProps = {
618
618
  arScaleMode?: XRScaleMode;
619
619
  mobileHandoffUrl?: string;
620
620
  showAnnotationNavigation?: boolean;
621
+ showAnnotationOnHover?: boolean;
621
622
  };
622
- declare function ModelViewer({ modelUrl, licenseKey, objectBindings, selectedObject, panelHoveredObject, onObjectBindingsChange, onObjectSelect, onObjectHover, onModelLoaded, onLoadError, onAction, onHiddenObjectsChange, onCameraChange, onViewerReady, onTextureUpload, onAnimationsReady, onAnnotationsChange, activeAnnotation: controlledActiveAnnotation, onActiveAnnotationChange, lights, camera, backgroundColor, shadows, showObjectBindingDataPanel, customObjectBindingDataPanel, customSceneObjectsPanel, showSceneObjectsPanel, showDownloadButton, downloadFilename, showResetButton, showLoadingOverlay, showMouseController, mouseControllerPosition, mouseControllerOpacity, moveSensitivity, zoomSensitivity, sceneConfig, disableZoom, zoomOnSelected, highlightOnHover, onAutoFit, refitOnResize, renderMode, maxDpr, performanceProfile, dracoDecoderPath, ktx2TranscoderPath, meshopt, showMeasureTools, showExplodeControls, cinematic, measurementUnit, enableXR, usdzUrl, arScaleMode, mobileHandoffUrl, showAnnotationNavigation, }: ModelViewerProps): react_jsx_runtime.JSX.Element;
623
+ declare function ModelViewer({ modelUrl, licenseKey, objectBindings, selectedObject, panelHoveredObject, onObjectBindingsChange, onObjectSelect, onObjectHover, onModelLoaded, onLoadError, onAction, onHiddenObjectsChange, onCameraChange, onViewerReady, onTextureUpload, onAnimationsReady, onAnnotationsChange, activeAnnotation: controlledActiveAnnotation, onActiveAnnotationChange, lights, camera, backgroundColor, shadows, showObjectBindingDataPanel, customObjectBindingDataPanel, customSceneObjectsPanel, showSceneObjectsPanel, showDownloadButton, downloadFilename, showResetButton, showLoadingOverlay, showMouseController, mouseControllerPosition, mouseControllerOpacity, moveSensitivity, zoomSensitivity, sceneConfig, disableZoom, zoomOnSelected, highlightOnHover, onAutoFit, refitOnResize, renderMode, maxDpr, performanceProfile, dracoDecoderPath, ktx2TranscoderPath, meshopt, showMeasureTools, showExplodeControls, cinematic, measurementUnit, enableXR, usdzUrl, arScaleMode, mobileHandoffUrl, showAnnotationNavigation, showAnnotationOnHover, }: ModelViewerProps): react_jsx_runtime.JSX.Element;
623
624
 
624
625
  declare function BindingBuilder({ licenseKey }: {
625
626
  licenseKey: string;
package/dist/index.d.ts CHANGED
@@ -618,8 +618,9 @@ type ModelViewerProps = {
618
618
  arScaleMode?: XRScaleMode;
619
619
  mobileHandoffUrl?: string;
620
620
  showAnnotationNavigation?: boolean;
621
+ showAnnotationOnHover?: boolean;
621
622
  };
622
- declare function ModelViewer({ modelUrl, licenseKey, objectBindings, selectedObject, panelHoveredObject, onObjectBindingsChange, onObjectSelect, onObjectHover, onModelLoaded, onLoadError, onAction, onHiddenObjectsChange, onCameraChange, onViewerReady, onTextureUpload, onAnimationsReady, onAnnotationsChange, activeAnnotation: controlledActiveAnnotation, onActiveAnnotationChange, lights, camera, backgroundColor, shadows, showObjectBindingDataPanel, customObjectBindingDataPanel, customSceneObjectsPanel, showSceneObjectsPanel, showDownloadButton, downloadFilename, showResetButton, showLoadingOverlay, showMouseController, mouseControllerPosition, mouseControllerOpacity, moveSensitivity, zoomSensitivity, sceneConfig, disableZoom, zoomOnSelected, highlightOnHover, onAutoFit, refitOnResize, renderMode, maxDpr, performanceProfile, dracoDecoderPath, ktx2TranscoderPath, meshopt, showMeasureTools, showExplodeControls, cinematic, measurementUnit, enableXR, usdzUrl, arScaleMode, mobileHandoffUrl, showAnnotationNavigation, }: ModelViewerProps): react_jsx_runtime.JSX.Element;
623
+ declare function ModelViewer({ modelUrl, licenseKey, objectBindings, selectedObject, panelHoveredObject, onObjectBindingsChange, onObjectSelect, onObjectHover, onModelLoaded, onLoadError, onAction, onHiddenObjectsChange, onCameraChange, onViewerReady, onTextureUpload, onAnimationsReady, onAnnotationsChange, activeAnnotation: controlledActiveAnnotation, onActiveAnnotationChange, lights, camera, backgroundColor, shadows, showObjectBindingDataPanel, customObjectBindingDataPanel, customSceneObjectsPanel, showSceneObjectsPanel, showDownloadButton, downloadFilename, showResetButton, showLoadingOverlay, showMouseController, mouseControllerPosition, mouseControllerOpacity, moveSensitivity, zoomSensitivity, sceneConfig, disableZoom, zoomOnSelected, highlightOnHover, onAutoFit, refitOnResize, renderMode, maxDpr, performanceProfile, dracoDecoderPath, ktx2TranscoderPath, meshopt, showMeasureTools, showExplodeControls, cinematic, measurementUnit, enableXR, usdzUrl, arScaleMode, mobileHandoffUrl, showAnnotationNavigation, showAnnotationOnHover, }: ModelViewerProps): react_jsx_runtime.JSX.Element;
623
624
 
624
625
  declare function BindingBuilder({ licenseKey }: {
625
626
  licenseKey: string;