@relu-interactives/spatial-ecs 0.3.15 → 0.3.18

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 (38) hide show
  1. package/dist/{XRHandPose-LR4EhboN.d.cts → XRHandPose-B8xxFb9A.d.cts} +12 -0
  2. package/dist/{XRHandPose-SZ7ou63b.d.ts → XRHandPose-ubMe5Igc.d.ts} +12 -0
  3. package/dist/{chunk-GULLCPO6.js → chunk-7SSOZWXM.js} +123 -36
  4. package/dist/chunk-7SSOZWXM.js.map +1 -0
  5. package/dist/{chunk-3LDQ4GVZ.js → chunk-J3EUNW57.js} +5 -2
  6. package/dist/chunk-J3EUNW57.js.map +1 -0
  7. package/dist/{chunk-UHJ4MDIM.js → chunk-KRWBNC6Y.js} +4 -4
  8. package/dist/{chunk-UHJ4MDIM.js.map → chunk-KRWBNC6Y.js.map} +1 -1
  9. package/dist/{chunk-PNQ7HDQC.js → chunk-PFE2SDXR.js} +3 -3
  10. package/dist/{chunk-PNQ7HDQC.js.map → chunk-PFE2SDXR.js.map} +1 -1
  11. package/dist/components/index.cjs +3 -0
  12. package/dist/components/index.cjs.map +1 -1
  13. package/dist/components/index.d.cts +2 -2
  14. package/dist/components/index.d.ts +2 -2
  15. package/dist/components/index.js +1 -1
  16. package/dist/docs/guide/vr-and-hand-poses.md +1 -1
  17. package/dist/factories/index.cjs +3 -0
  18. package/dist/factories/index.cjs.map +1 -1
  19. package/dist/factories/index.d.cts +1 -1
  20. package/dist/factories/index.d.ts +1 -1
  21. package/dist/factories/index.js +3 -3
  22. package/dist/{index-BKGV3VvQ.d.cts → index-7CFf45fo.d.cts} +24 -1
  23. package/dist/{index-BL5EWkwY.d.cts → index-CA9fqh4Z.d.cts} +1 -1
  24. package/dist/{index-Bi7L3QHF.d.ts → index-D7aSZ-e9.d.ts} +24 -1
  25. package/dist/{index-ByiUoIoh.d.ts → index-DhWfxUgL.d.ts} +1 -1
  26. package/dist/index.cjs +122 -32
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +5 -5
  29. package/dist/index.d.ts +5 -5
  30. package/dist/index.js +8 -8
  31. package/dist/systems/index.cjs +122 -32
  32. package/dist/systems/index.cjs.map +1 -1
  33. package/dist/systems/index.d.cts +1 -1
  34. package/dist/systems/index.d.ts +1 -1
  35. package/dist/systems/index.js +3 -3
  36. package/package.json +1 -1
  37. package/dist/chunk-3LDQ4GVZ.js.map +0 -1
  38. package/dist/chunk-GULLCPO6.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { k as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, l as World, S as SpawnPrefabSource, m as SpawnPrefabOptions, n as ComponentClass, o as ParentLookup, p as EcsEntityKind, O as ObjectManagementSystem, q as SubtreeSnapshot, r as EntityId, s as ExternalRefWarning } from './System-BhnLw0fZ.cjs';
2
2
  export { A as AssetInput, t as CheckboxInput, u as ColorInput, v as ComponentFactory, w as ComponentInput, x as ComponentKind, y as DropdownInput, z as DropdownOption, B as EcsComponentFactoryKind, F as EcsEntityEditorKind, G as EntityInput, H as FloatInput, I as InputSystem, J as IntersectionResult, K as KeyboardKey, L as KeyboardKeys, M as MouseButton, N as PREFAB_FILE_VERSION, Q as PREFAB_FILE_VERSION_NESTED, R as PrefabAsset, U as RemapSnapshotOptions, X as RenderSystem, Y as SelectionListener, Z as SliderInput, _ as TextInput, $ as ToggleInput, a0 as TransformSyncSystem, a1 as Vec3, a2 as Vector2Input, a3 as Vector3Input, a4 as clearPrefabCache, a5 as despawnPrefab, a6 as loadPrefab, a7 as parsePrefabAsset, a8 as prefabFileVersionFor, a9 as remapSnapshotEntityIds, aa as setPrefabAssetUrlResolver, ab as spawnPrefab } from './System-BhnLw0fZ.cjs';
3
3
  import * as THREE from 'three';
4
- import { O as Object3DRef, an as XrHandPreset } from './XRHandPose-LR4EhboN.cjs';
5
- export { az as AnimationStateCallbacks, aA as AnimationStateMachine, aB as AnimationStateManager, aC as StateMachine } from './XRHandPose-LR4EhboN.cjs';
6
- import { X as XrCapabilities, a as XrInputState, b as XrHandPoseEventDetail } from './index-BKGV3VvQ.cjs';
7
- export { A as AnimationSystem, c as AudioSystem, C as CameraSyncSystem, E as EnvironmentSyncSystem, I as InstancedMeshSystem, L as LightSyncSystem, M as MaterialSyncSystem, d as MeshGeometrySystem, e as ModuleLoader, N as NO_XR_CAPABILITIES, O as ObjectVisibilitySystem, P as PhysicsSyncSystem, f as PostprocessingSyncSystem, S as SCRIPT_OBJECT_ROOT_FLAG, g as ScriptBehaviourSystem, h as ScriptObjectSystem, i as SelectionContext, V as VRTeleportAreaSystem, j as VideoSystem, k as XRControllerVisualSystem, l as XRHandPoseSystem, m as XRHoverVisualSystem, n as XRInputSystem, o as XRInteractionSystem, p as XRLocomotionSystem, q as XRSessionSystem, r as XRTeleportVisualSystem, s as XR_HOVER_SHELL_FLAG, t as XrHandedness, u as XrInputKind, v as readXrCapabilities } from './index-BKGV3VvQ.cjs';
8
- export { i as CoreComponents } from './index-BL5EWkwY.cjs';
4
+ import { O as Object3DRef, an as XrHandPreset } from './XRHandPose-B8xxFb9A.cjs';
5
+ export { az as AnimationStateCallbacks, aA as AnimationStateMachine, aB as AnimationStateManager, aC as StateMachine } from './XRHandPose-B8xxFb9A.cjs';
6
+ import { X as XrCapabilities, a as XrInputState, b as XrHandPoseEventDetail } from './index-7CFf45fo.cjs';
7
+ export { A as AnimationSystem, c as AudioSystem, C as CameraSyncSystem, E as EnvironmentSyncSystem, I as InstancedMeshSystem, L as LightSyncSystem, M as MaterialSyncSystem, d as MeshGeometrySystem, e as ModuleLoader, N as NO_XR_CAPABILITIES, O as ObjectVisibilitySystem, P as PhysicsSyncSystem, f as PostprocessingSyncSystem, S as SCRIPT_OBJECT_ROOT_FLAG, g as ScriptBehaviourSystem, h as ScriptObjectSystem, i as SelectionContext, V as VRTeleportAreaSystem, j as VideoSystem, k as XRControllerVisualSystem, l as XRHandPoseSystem, m as XRHoverVisualSystem, n as XRInputSystem, o as XRInteractionSystem, p as XRLocomotionSystem, q as XRSessionSystem, r as XRTeleportVisualSystem, s as XR_HOVER_SHELL_FLAG, t as XrHandedness, u as XrInputKind, v as readXrCapabilities } from './index-7CFf45fo.cjs';
8
+ export { i as CoreComponents } from './index-CA9fqh4Z.cjs';
9
9
  export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.cjs';
10
10
  import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
11
11
  import { X as XrHandPoseDefinition, a as XrFinger, b as XrHandPoseOrientation } from './handPose-dFxqbFFY.cjs';
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { k as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, l as World, S as SpawnPrefabSource, m as SpawnPrefabOptions, n as ComponentClass, o as ParentLookup, p as EcsEntityKind, O as ObjectManagementSystem, q as SubtreeSnapshot, r as EntityId, s as ExternalRefWarning } from './System-BhnLw0fZ.js';
2
2
  export { A as AssetInput, t as CheckboxInput, u as ColorInput, v as ComponentFactory, w as ComponentInput, x as ComponentKind, y as DropdownInput, z as DropdownOption, B as EcsComponentFactoryKind, F as EcsEntityEditorKind, G as EntityInput, H as FloatInput, I as InputSystem, J as IntersectionResult, K as KeyboardKey, L as KeyboardKeys, M as MouseButton, N as PREFAB_FILE_VERSION, Q as PREFAB_FILE_VERSION_NESTED, R as PrefabAsset, U as RemapSnapshotOptions, X as RenderSystem, Y as SelectionListener, Z as SliderInput, _ as TextInput, $ as ToggleInput, a0 as TransformSyncSystem, a1 as Vec3, a2 as Vector2Input, a3 as Vector3Input, a4 as clearPrefabCache, a5 as despawnPrefab, a6 as loadPrefab, a7 as parsePrefabAsset, a8 as prefabFileVersionFor, a9 as remapSnapshotEntityIds, aa as setPrefabAssetUrlResolver, ab as spawnPrefab } from './System-BhnLw0fZ.js';
3
3
  import * as THREE from 'three';
4
- import { O as Object3DRef, an as XrHandPreset } from './XRHandPose-SZ7ou63b.js';
5
- export { az as AnimationStateCallbacks, aA as AnimationStateMachine, aB as AnimationStateManager, aC as StateMachine } from './XRHandPose-SZ7ou63b.js';
6
- import { X as XrCapabilities, a as XrInputState, b as XrHandPoseEventDetail } from './index-Bi7L3QHF.js';
7
- export { A as AnimationSystem, c as AudioSystem, C as CameraSyncSystem, E as EnvironmentSyncSystem, I as InstancedMeshSystem, L as LightSyncSystem, M as MaterialSyncSystem, d as MeshGeometrySystem, e as ModuleLoader, N as NO_XR_CAPABILITIES, O as ObjectVisibilitySystem, P as PhysicsSyncSystem, f as PostprocessingSyncSystem, S as SCRIPT_OBJECT_ROOT_FLAG, g as ScriptBehaviourSystem, h as ScriptObjectSystem, i as SelectionContext, V as VRTeleportAreaSystem, j as VideoSystem, k as XRControllerVisualSystem, l as XRHandPoseSystem, m as XRHoverVisualSystem, n as XRInputSystem, o as XRInteractionSystem, p as XRLocomotionSystem, q as XRSessionSystem, r as XRTeleportVisualSystem, s as XR_HOVER_SHELL_FLAG, t as XrHandedness, u as XrInputKind, v as readXrCapabilities } from './index-Bi7L3QHF.js';
8
- export { i as CoreComponents } from './index-ByiUoIoh.js';
4
+ import { O as Object3DRef, an as XrHandPreset } from './XRHandPose-ubMe5Igc.js';
5
+ export { az as AnimationStateCallbacks, aA as AnimationStateMachine, aB as AnimationStateManager, aC as StateMachine } from './XRHandPose-ubMe5Igc.js';
6
+ import { X as XrCapabilities, a as XrInputState, b as XrHandPoseEventDetail } from './index-D7aSZ-e9.js';
7
+ export { A as AnimationSystem, c as AudioSystem, C as CameraSyncSystem, E as EnvironmentSyncSystem, I as InstancedMeshSystem, L as LightSyncSystem, M as MaterialSyncSystem, d as MeshGeometrySystem, e as ModuleLoader, N as NO_XR_CAPABILITIES, O as ObjectVisibilitySystem, P as PhysicsSyncSystem, f as PostprocessingSyncSystem, S as SCRIPT_OBJECT_ROOT_FLAG, g as ScriptBehaviourSystem, h as ScriptObjectSystem, i as SelectionContext, V as VRTeleportAreaSystem, j as VideoSystem, k as XRControllerVisualSystem, l as XRHandPoseSystem, m as XRHoverVisualSystem, n as XRInputSystem, o as XRInteractionSystem, p as XRLocomotionSystem, q as XRSessionSystem, r as XRTeleportVisualSystem, s as XR_HOVER_SHELL_FLAG, t as XrHandedness, u as XrInputKind, v as readXrCapabilities } from './index-D7aSZ-e9.js';
8
+ export { i as CoreComponents } from './index-DhWfxUgL.js';
9
9
  export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.js';
10
10
  import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
11
11
  import { X as XrHandPoseDefinition, a as XrFinger, b as XrHandPoseOrientation } from './handPose-dFxqbFFY.js';
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { MeshGeometrySystem, InstancedMeshSystem, EnvironmentSyncSystem, PostprocessingSyncSystem, LightSyncSystem, MaterialSyncSystem, VRTeleportAreaSystem, PhysicsSyncSystem, AnimationSystem, AudioSystem, VideoSystem, CameraSyncSystem, TransformSyncSystem, ObjectVisibilitySystem, RenderSystem, spawnPrefab, despawnPrefab, buildNodeKeyMapsFromSnapshot, indexSnapshotByEntity, findTopLevelNestedRegions, collectSnapshotSubtreeIds, groupOverridePaths, OVERRIDE_DIFF_EXCLUDED_COMPONENTS, OVERRIDE_ROOT_EXCLUDED_COMPONENTS, canonicalizeComponentValue, mergeComponentValue, decanonicalizeComponentValue, computeInstanceOverrides, collectEntitySubtree, ADDED_NODE_MARKER_COMPONENT } from './chunk-GULLCPO6.js';
2
- export { ADDED_NODE_MARKER_COMPONENT, ARC_GRAVITY, ARC_MAX_TIME, ARC_SPEED, ARC_STEPS, AnimationSystem, AudioSystem, Behaviour, CURLED_COS, CameraSyncSystem, DEFAULT_ENTER_CONFIDENCE, DEFAULT_EXIT_CONFIDENCE, DEFAULT_LOST_GRACE_SECONDS, DEFAULT_MIN_HOLD_SECONDS, EnvironmentSyncSystem, FALLBACK_HAND_SCALE, HYDRATABLE_ENTITY_KINDS, HandPoseTracker, InputSystem, InstancedMeshSystem, KeyboardKeys, LightSyncSystem, MATCH_FALLOFF, MAX_PLAUSIBLE_SPEED, MAX_SAMPLE_AGE_SECONDS, MaterialSyncSystem, MeshGeometrySystem, NODE_KEY_SEPARATOR, NO_XR_CAPABILITIES, OVERRIDE_DIFF_EXCLUDED_COMPONENTS, OVERRIDE_ROOT_EXCLUDED_COMPONENTS, ObjectVisibilitySystem, PINCH_FINGERS, PREFAB_FILE_VERSION, PREFAB_FILE_VERSION_NESTED, PhysicsSyncSystem, PostprocessingSyncSystem, RenderSystem, SCRIPT_OBJECT_ROOT_FLAG, STRAIGHT_COS, ScriptBehaviourSystem, ScriptObject, ScriptObjectSystem, TeleportAimGate, ThrowVelocityTracker, TransformSyncSystem, VELOCITY_SAMPLES, VRTeleportAreaSystem, VideoSystem, XRControllerVisualSystem, XRHandPoseSystem, XRHoverVisualSystem, XRInputSystem, XRInteractionSystem, XRLocomotionSystem, XRSessionSystem, XRTeleportVisualSystem, XR_FINGERS, XR_HOVER_SHELL_FLAG, angularVelocityFrom, applyHandMaterial, arcGroundCrossing, buildComponentValueMaps, buildNodeKeyMapsFromSnapshot, buildNodeMapsFromSnapshot, canonicalizeComponentValue, clearPrefabCache, collectDiffPaths, collectEntitySubtree, collectSnapshotSubtreeIds, computeFingerCurl, computeHandShape, computeInstanceOverrides, computePalmPose, computePalmWidth, computePinch, computeSpread, createHandMaterial, decanonicalizeComponentValue, despawnPrefab, encodeOverride, estimateHandScale, findSnapshotRootEntityIds, findTopLevelNestedRegions, groupOverridePaths, hydrateWorldFromSnapshot, hydrateWorldFromSnapshotDetailed, indexSnapshotByEntity, instantiateSubtree, loadPrefab, matchHandPose, mergeComponentValue, parseOverride, parsePrefabAsset, prefabFileVersionFor, readXrCapabilities, restoreComponentState, restorePostCreateComponents, sampleTeleportArc, setPrefabAssetUrlResolver, spawnPrefab } from './chunk-GULLCPO6.js';
3
- import { registerDefaultFactories } from './chunk-UHJ4MDIM.js';
4
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from './chunk-UHJ4MDIM.js';
5
- import { ObjectManagementSystem } from './chunk-PNQ7HDQC.js';
6
- export { ObjectManagementSystem, SHARED_MODEL_RESOURCE_FLAG, clearModelCache, loadSharedGltf, resolveDracoDecoderPath, setDracoDecoderPath } from './chunk-PNQ7HDQC.js';
7
- import { SelectionTransformState, Object3DRef, Name, EntityType, ParentId, Environment, Postprocessing, ScriptComponent } from './chunk-3LDQ4GVZ.js';
8
- export { AnimationStateMachine, AnimationStateManager, components_exports as CoreComponents, HAND_POSE_PRESETS, HAND_POSE_PRESET_IDS, cloneHandPose, getHandPosePreset, handPoseFromCurls } from './chunk-3LDQ4GVZ.js';
1
+ import { MeshGeometrySystem, InstancedMeshSystem, EnvironmentSyncSystem, PostprocessingSyncSystem, LightSyncSystem, MaterialSyncSystem, VRTeleportAreaSystem, PhysicsSyncSystem, AnimationSystem, AudioSystem, VideoSystem, CameraSyncSystem, TransformSyncSystem, ObjectVisibilitySystem, RenderSystem, spawnPrefab, despawnPrefab, buildNodeKeyMapsFromSnapshot, indexSnapshotByEntity, findTopLevelNestedRegions, collectSnapshotSubtreeIds, groupOverridePaths, OVERRIDE_DIFF_EXCLUDED_COMPONENTS, OVERRIDE_ROOT_EXCLUDED_COMPONENTS, canonicalizeComponentValue, mergeComponentValue, decanonicalizeComponentValue, computeInstanceOverrides, collectEntitySubtree, ADDED_NODE_MARKER_COMPONENT } from './chunk-7SSOZWXM.js';
2
+ export { ADDED_NODE_MARKER_COMPONENT, ARC_GRAVITY, ARC_MAX_TIME, ARC_SPEED, ARC_STEPS, AnimationSystem, AudioSystem, Behaviour, CURLED_COS, CameraSyncSystem, DEFAULT_ENTER_CONFIDENCE, DEFAULT_EXIT_CONFIDENCE, DEFAULT_LOST_GRACE_SECONDS, DEFAULT_MIN_HOLD_SECONDS, EnvironmentSyncSystem, FALLBACK_HAND_SCALE, HYDRATABLE_ENTITY_KINDS, HandPoseTracker, InputSystem, InstancedMeshSystem, KeyboardKeys, LightSyncSystem, MATCH_FALLOFF, MAX_PLAUSIBLE_SPEED, MAX_SAMPLE_AGE_SECONDS, MaterialSyncSystem, MeshGeometrySystem, NODE_KEY_SEPARATOR, NO_XR_CAPABILITIES, OVERRIDE_DIFF_EXCLUDED_COMPONENTS, OVERRIDE_ROOT_EXCLUDED_COMPONENTS, ObjectVisibilitySystem, PINCH_FINGERS, PREFAB_FILE_VERSION, PREFAB_FILE_VERSION_NESTED, PhysicsSyncSystem, PostprocessingSyncSystem, RenderSystem, SCRIPT_OBJECT_ROOT_FLAG, STRAIGHT_COS, ScriptBehaviourSystem, ScriptObject, ScriptObjectSystem, TeleportAimGate, ThrowVelocityTracker, TransformSyncSystem, VELOCITY_SAMPLES, VRTeleportAreaSystem, VideoSystem, XRControllerVisualSystem, XRHandPoseSystem, XRHoverVisualSystem, XRInputSystem, XRInteractionSystem, XRLocomotionSystem, XRSessionSystem, XRTeleportVisualSystem, XR_FINGERS, XR_HOVER_SHELL_FLAG, angularVelocityFrom, applyHandMaterial, arcGroundCrossing, buildComponentValueMaps, buildNodeKeyMapsFromSnapshot, buildNodeMapsFromSnapshot, canonicalizeComponentValue, clearPrefabCache, collectDiffPaths, collectEntitySubtree, collectSnapshotSubtreeIds, computeFingerCurl, computeHandShape, computeInstanceOverrides, computePalmPose, computePalmWidth, computePinch, computeSpread, createHandMaterial, decanonicalizeComponentValue, despawnPrefab, encodeOverride, estimateHandScale, findSnapshotRootEntityIds, findTopLevelNestedRegions, groupOverridePaths, hydrateWorldFromSnapshot, hydrateWorldFromSnapshotDetailed, indexSnapshotByEntity, instantiateSubtree, loadPrefab, matchHandPose, mergeComponentValue, parseOverride, parsePrefabAsset, prefabFileVersionFor, readXrCapabilities, restoreComponentState, restorePostCreateComponents, sampleTeleportArc, setPrefabAssetUrlResolver, spawnPrefab } from './chunk-7SSOZWXM.js';
3
+ import { registerDefaultFactories } from './chunk-KRWBNC6Y.js';
4
+ export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from './chunk-KRWBNC6Y.js';
5
+ import { ObjectManagementSystem } from './chunk-PFE2SDXR.js';
6
+ export { ObjectManagementSystem, SHARED_MODEL_RESOURCE_FLAG, clearModelCache, loadSharedGltf, resolveDracoDecoderPath, setDracoDecoderPath } from './chunk-PFE2SDXR.js';
7
+ import { SelectionTransformState, Object3DRef, Name, EntityType, ParentId, Environment, Postprocessing, ScriptComponent } from './chunk-J3EUNW57.js';
8
+ export { AnimationStateMachine, AnimationStateManager, components_exports as CoreComponents, HAND_POSE_PRESETS, HAND_POSE_PRESET_IDS, cloneHandPose, getHandPosePreset, handPoseFromCurls } from './chunk-J3EUNW57.js';
9
9
  import './chunk-QHILSPT4.js';
10
10
  import { normalizeDebugValue, DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue } from './chunk-OWQSESTO.js';
11
11
  import { __name } from './chunk-OY7ZODZP.js';
@@ -2151,6 +2151,9 @@ var _XRRigComponent = class _XRRigComponent extends Component {
2151
2151
  this.snapTurn = options?.snapTurn ?? true;
2152
2152
  this.snapTurnDegrees = options?.snapTurnDegrees ?? 30;
2153
2153
  this.fallbackEyeHeight = options?.fallbackEyeHeight ?? 1.6;
2154
+ this.teleportArcColor = options?.teleportArcColor ?? "#4da3ff";
2155
+ this.teleportArcInvalidColor = options?.teleportArcInvalidColor ?? "#ff5a5a";
2156
+ this.teleportArcThickness = options?.teleportArcThickness ?? 0.012;
2154
2157
  }
2155
2158
  };
2156
2159
  __name(_XRRigComponent, "XRRigComponent");
@@ -5361,6 +5364,15 @@ function restorePostCreateComponents(world, objectManagementSystem, targetEntity
5361
5364
  if (typeof sourceXrRig.snapTurnDegrees === "number") {
5362
5365
  rig.snapTurnDegrees = sourceXrRig.snapTurnDegrees;
5363
5366
  }
5367
+ if (typeof sourceXrRig.teleportArcColor === "string") {
5368
+ rig.teleportArcColor = sourceXrRig.teleportArcColor;
5369
+ }
5370
+ if (typeof sourceXrRig.teleportArcInvalidColor === "string") {
5371
+ rig.teleportArcInvalidColor = sourceXrRig.teleportArcInvalidColor;
5372
+ }
5373
+ if (typeof sourceXrRig.teleportArcThickness === "number") {
5374
+ rig.teleportArcThickness = sourceXrRig.teleportArcThickness;
5375
+ }
5364
5376
  if (typeof sourceXrRig.fallbackEyeHeight === "number") {
5365
5377
  rig.fallbackEyeHeight = sourceXrRig.fallbackEyeHeight;
5366
5378
  }
@@ -9183,6 +9195,8 @@ var _XRLocomotionSystem = class _XRLocomotionSystem {
9183
9195
  this.aimValid = false;
9184
9196
  /** Sources currently aiming via thumbstick (hysteresis, so it doesn't chatter). */
9185
9197
  this.stickAiming = /* @__PURE__ */ new WeakSet();
9198
+ /** One-time warning when a committed teleport found nowhere to land. */
9199
+ this.warnedNoLanding = false;
9186
9200
  /** Gates teleport commits on a prior aim. See {@link TeleportAimGate}. */
9187
9201
  this.teleportAim = new TeleportAimGate();
9188
9202
  /** True once we've tried to self-heal camera parenting for this session. */
@@ -9329,7 +9343,8 @@ var _XRLocomotionSystem = class _XRLocomotionSystem {
9329
9343
  }
9330
9344
  const stick = this.readStickAim(input, source);
9331
9345
  const aiming = input.select || input.selectStart || stick.aiming;
9332
- const releasing = input.selectEnd || stick.released;
9346
+ const vanished = !input.connected && this.teleportAim.isAiming(source);
9347
+ const releasing = input.selectEnd || stick.released || vanished;
9333
9348
  const commit = this.teleportAim.update(source, aiming, releasing);
9334
9349
  if (!aiming && !commit) continue;
9335
9350
  const points = sampleTeleportArc(
@@ -9349,6 +9364,12 @@ var _XRLocomotionSystem = class _XRLocomotionSystem {
9349
9364
  this.landingPoint = null;
9350
9365
  this.aimValid = false;
9351
9366
  } else if (commit) {
9367
+ if (!this.warnedNoLanding) {
9368
+ this.warnedNoLanding = true;
9369
+ console.warn(
9370
+ "[XRLocomotionSystem] Teleport released but the arc did not land on a Teleport Area. Add a teleportArea entity where the player should be able to go."
9371
+ );
9372
+ }
9352
9373
  this.aimCurve = [];
9353
9374
  this.aimValid = false;
9354
9375
  }
@@ -9924,24 +9945,33 @@ __name(_XRControllerVisualSystem, "XRControllerVisualSystem");
9924
9945
  var XRControllerVisualSystem = _XRControllerVisualSystem;
9925
9946
  var MARKER_RADIUS = 0.28;
9926
9947
  var ACCENT = new THREE26__namespace.Color("#4da3ff");
9927
- var BLOCKED = new THREE26__namespace.Color("#ff5a5a");
9948
+ var SEGMENT_AXIS = new THREE26__namespace.Vector3(0, 1, 0);
9949
+ var HEAD_CLEARANCE = 0.25;
9928
9950
  var _XRTeleportVisualSystem = class _XRTeleportVisualSystem {
9929
9951
  constructor(locomotionSystem) {
9930
9952
  this.group = new THREE26__namespace.Group();
9931
- this.arcGeometry = new THREE26__namespace.BufferGeometry();
9953
+ /** Holds the segment chain that draws the arc. */
9954
+ this.arc = new THREE26__namespace.Group();
9955
+ /**
9956
+ * Unit cylinder along +Y, reused by every segment.
9957
+ *
9958
+ * The arc was a `THREE.Line`, which WebGL always renders one pixel wide —
9959
+ * effectively invisible on a headset, and not thickenable at all. A chain of
9960
+ * scaled cylinders gives real thickness while rebuilding no geometry: each
9961
+ * frame only moves, rotates and scales meshes that already exist.
9962
+ */
9963
+ this.segmentGeometry = new THREE26__namespace.CylinderGeometry(1, 1, 1, 6, 1);
9964
+ this.segments = [];
9932
9965
  this.marker = new THREE26__namespace.Group();
9933
9966
  this.attached = false;
9967
+ this.scratchDirection = new THREE26__namespace.Vector3();
9968
+ this.scratchHead = new THREE26__namespace.Vector3();
9969
+ this.validColor = new THREE26__namespace.Color();
9970
+ this.invalidColor = new THREE26__namespace.Color();
9934
9971
  this.locomotionSystem = locomotionSystem;
9935
9972
  this.group.name = "XRTeleportVisuals";
9936
9973
  this.group.userData.ecsPreviewHidden = true;
9937
- const arcMaterial = new THREE26__namespace.LineBasicMaterial({
9938
- vertexColors: true,
9939
- transparent: true,
9940
- depthTest: false
9941
- });
9942
- this.arc = new THREE26__namespace.Line(this.arcGeometry, arcMaterial);
9943
- this.arc.frustumCulled = false;
9944
- this.arc.renderOrder = 998;
9974
+ this.arc.name = "XRTeleportArc";
9945
9975
  this.group.add(this.arc);
9946
9976
  this.marker.add(this.createRing(), this.createDot());
9947
9977
  this.marker.renderOrder = 999;
@@ -9953,15 +9983,27 @@ var _XRTeleportVisualSystem = class _XRTeleportVisualSystem {
9953
9983
  world.getScene().add(this.group);
9954
9984
  this.attached = true;
9955
9985
  }
9956
- const curve = this.locomotionSystem.getAimCurve();
9986
+ const raw = this.locomotionSystem.getAimCurve();
9957
9987
  const landing = this.locomotionSystem.getLandingPoint();
9958
9988
  const valid = this.locomotionSystem.isAimValid();
9989
+ if (raw.length < 2) {
9990
+ this.setVisible(false);
9991
+ return;
9992
+ }
9993
+ const curve = this.trimNearHead(world, raw);
9959
9994
  if (curve.length < 2) {
9960
9995
  this.setVisible(false);
9961
9996
  return;
9962
9997
  }
9963
- this.updateArcGeometry(curve, valid ? ACCENT : BLOCKED);
9998
+ const rig = this.resolveRig(world);
9999
+ const thickness = Math.min(
10000
+ 0.1,
10001
+ Math.max(1e-3, rig?.teleportArcThickness ?? 0.012)
10002
+ );
10003
+ const tint = valid ? this.validColor.set(rig?.teleportArcColor ?? "#4da3ff") : this.invalidColor.set(rig?.teleportArcInvalidColor ?? "#ff5a5a");
10004
+ this.updateArcGeometry(curve, tint, thickness);
9964
10005
  if (valid && landing) {
10006
+ this.tintMarker(tint);
9965
10007
  this.marker.position.copy(landing);
9966
10008
  this.marker.position.y += 0.01;
9967
10009
  this.marker.visible = true;
@@ -9970,27 +10012,66 @@ var _XRTeleportVisualSystem = class _XRTeleportVisualSystem {
9970
10012
  }
9971
10013
  this.setVisible(true);
9972
10014
  }
9973
- updateArcGeometry(curve, tint) {
9974
- const count = curve.length;
9975
- const positions = new Float32Array(count * 3);
9976
- const colors = new Float32Array(count * 3);
9977
- for (let i = 0; i < count; i += 1) {
9978
- const point = curve[i];
9979
- positions[i * 3] = point.x;
9980
- positions[i * 3 + 1] = point.y;
9981
- positions[i * 3 + 2] = point.z;
9982
- const t = count > 1 ? i / (count - 1) : 0;
10015
+ updateArcGeometry(curve, tint, thickness) {
10016
+ const needed = curve.length - 1;
10017
+ this.ensureSegments(needed);
10018
+ const radius = thickness / 2;
10019
+ for (let i = 0; i < this.segments.length; i += 1) {
10020
+ const segment = this.segments[i];
10021
+ if (i >= needed) {
10022
+ segment.visible = false;
10023
+ continue;
10024
+ }
10025
+ const from = curve[i];
10026
+ const to = curve[i + 1];
10027
+ this.scratchDirection.subVectors(to, from);
10028
+ const length = this.scratchDirection.length();
10029
+ if (length < 1e-6) {
10030
+ segment.visible = false;
10031
+ continue;
10032
+ }
10033
+ segment.visible = true;
10034
+ segment.position.copy(from).addScaledVector(this.scratchDirection, 0.5);
10035
+ segment.quaternion.setFromUnitVectors(
10036
+ SEGMENT_AXIS,
10037
+ this.scratchDirection.divideScalar(length)
10038
+ );
10039
+ segment.scale.set(radius, length, radius);
10040
+ const t = needed > 1 ? i / (needed - 1) : 0;
9983
10041
  const fade = 1 - t * 0.75;
9984
- colors[i * 3] = tint.r * fade;
9985
- colors[i * 3 + 1] = tint.g * fade;
9986
- colors[i * 3 + 2] = tint.b * fade;
10042
+ segment.material.color.copy(tint).multiplyScalar(fade);
9987
10043
  }
9988
- this.arcGeometry.setAttribute(
9989
- "position",
9990
- new THREE26__namespace.BufferAttribute(positions, 3)
9991
- );
9992
- this.arcGeometry.setAttribute("color", new THREE26__namespace.BufferAttribute(colors, 3));
9993
- this.arcGeometry.computeBoundingSphere();
10044
+ }
10045
+ /** Grow the segment pool to cover the current arc. */
10046
+ ensureSegments(count) {
10047
+ while (this.segments.length < count) {
10048
+ const material = new THREE26__namespace.MeshBasicMaterial({
10049
+ transparent: true,
10050
+ depthTest: false,
10051
+ depthWrite: false
10052
+ });
10053
+ const mesh = new THREE26__namespace.Mesh(this.segmentGeometry, material);
10054
+ mesh.frustumCulled = false;
10055
+ mesh.renderOrder = 998;
10056
+ mesh.raycast = () => {
10057
+ };
10058
+ this.segments.push(mesh);
10059
+ this.arc.add(mesh);
10060
+ }
10061
+ }
10062
+ /** Drop leading points that sit too close to the viewer's head. */
10063
+ trimNearHead(world, curve) {
10064
+ world.getCamera().getWorldPosition(this.scratchHead);
10065
+ let start = 0;
10066
+ while (start < curve.length - 2 && curve[start].distanceTo(this.scratchHead) < HEAD_CLEARANCE) {
10067
+ start += 1;
10068
+ }
10069
+ return start === 0 ? curve : curve.slice(start);
10070
+ }
10071
+ resolveRig(world) {
10072
+ const entityId = world.query(XRRigComponent)[0];
10073
+ if (typeof entityId !== "number") return null;
10074
+ return world.getComponent(entityId, XRRigComponent) ?? null;
9994
10075
  }
9995
10076
  createRing() {
9996
10077
  const geometry = new THREE26__namespace.RingGeometry(
@@ -10024,6 +10105,15 @@ var _XRTeleportVisualSystem = class _XRTeleportVisualSystem {
10024
10105
  })
10025
10106
  );
10026
10107
  }
10108
+ /** Recolour the landing marker to match the arc. */
10109
+ tintMarker(color) {
10110
+ this.marker.traverse((child) => {
10111
+ const material = child.material;
10112
+ if (material && !Array.isArray(material)) {
10113
+ material.color?.copy(color);
10114
+ }
10115
+ });
10116
+ }
10027
10117
  setVisible(visible) {
10028
10118
  this.group.visible = visible;
10029
10119
  }