setFreeMove(!freeMove)}
- placementMode={placementMode}
- onTogglePlacement={() => setPlacementMode(!placementMode)}
- snapToPlanes={snapToPlanes}
- onToggleSnap={() => setSnapToPlanes(!snapToPlanes)}
- allowScale={allowScale}
- onToggleAllowScale={() => setAllowScale(!allowScale)}
- />
+ {/* Floating DOM HUD overlay — only visible OUTSIDE passthrough.
+ Inside AR, the DOM is occluded by the headset compositor; the
+ in-world XRHudInWorld replaces it. */}
+
+ setFreeMove(!freeMove)}
+ placementMode={placementMode}
+ onTogglePlacement={() => setPlacementMode(!placementMode)}
+ snapToPlanes={snapToPlanes}
+ onToggleSnap={() => setSnapToPlanes(!snapToPlanes)}
+ allowScale={allowScale}
+ onToggleAllowScale={() => setAllowScale(!allowScale)}
+ />
+
+
+ {/* Hidden ShareButton instance — registers window.__trackSteelStartLive
+ so the in-world Share tab can trigger broadcasts. Also keeps live
+ state in sync with the in-XR HUD. */}
+
+ setLiveCode(h?.code ?? null)}
+ onViewerCountChange={setLiveViewers}
+ />
+
{/* DEVKIT: floating diagnostic panel + SimXR toggle */}
{devkit && (