@vincentt-xr/sdk 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (879) hide show
  1. package/GROUNDING.md +8193 -111
  2. package/README.md +86 -52
  3. package/dist/CanonicalHeadFrame-D_0OzdB9.cjs +1 -0
  4. package/dist/CanonicalHeadFrame-DdUqF6Fv.js +1506 -0
  5. package/dist/DebuggerUI-CVuV-VJ5.cjs +1 -0
  6. package/dist/DebuggerUI-D-rcPa54.js +275 -0
  7. package/dist/FaceRetouch-C1AxBNex.js +1071 -0
  8. package/dist/FaceRetouch-D7kryDE6.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  12. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  13. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  14. package/dist/TextLabel-c9BCucOI.js +961 -0
  15. package/dist/assets/cache.d.ts +99 -0
  16. package/dist/assets/estimate.d.ts +11 -0
  17. package/dist/assets/gltfLoader.d.ts +16 -0
  18. package/dist/assets/index.d.ts +7 -0
  19. package/dist/assets/loaders.d.ts +43 -0
  20. package/dist/assets/react.d.ts +33 -0
  21. package/dist/assets/sdkModels.d.ts +22 -0
  22. package/dist/audio/AudioEngine.d.ts +3 -1
  23. package/dist/audio/AudioPlayer.d.ts +29 -0
  24. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  25. package/dist/audio/index.d.ts +2 -0
  26. package/dist/body/__fixtures__/syntheticRig.d.ts +21 -0
  27. package/dist/body/bodyFlipGuard.d.ts +39 -0
  28. package/dist/body/bodyIdentity.d.ts +72 -0
  29. package/dist/body/bodyMask.d.ts +79 -0
  30. package/dist/body/bodyMaskMaterial.d.ts +15 -0
  31. package/dist/body/bodyPose.d.ts +58 -0
  32. package/dist/body/bodyRigFit.d.ts +148 -0
  33. package/dist/body/bodyRigSolver.d.ts +114 -0
  34. package/dist/body/bodySubject.d.ts +46 -0
  35. package/dist/body-pose/index.d.ts +521 -0
  36. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  37. package/dist/body-trigger/frame.d.ts +88 -0
  38. package/dist/body-trigger/index.d.ts +6 -0
  39. package/dist/body-trigger/moves.d.ts +235 -0
  40. package/dist/body-trigger/trigger.d.ts +75 -0
  41. package/dist/bodyMaskMaterial-CBWub5t_.cjs +68 -0
  42. package/dist/bodyMaskMaterial-Cs2awskk.js +207 -0
  43. package/dist/cache-2x3CUJuY.js +212 -0
  44. package/dist/cache-DL1Dbz6k.cjs +1 -0
  45. package/dist/calibration/calibration.d.ts +75 -0
  46. package/dist/calibration/index.d.ts +6 -0
  47. package/dist/calibration/storage.d.ts +13 -0
  48. package/dist/calibration/types.d.ts +53 -0
  49. package/dist/calibration/useXRCalibration.d.ts +46 -0
  50. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  51. package/dist/camera/devices.d.ts +26 -0
  52. package/dist/camera/index.d.ts +8 -0
  53. package/dist/camera/permission.d.ts +86 -0
  54. package/dist/camera/useCameraPermission.d.ts +35 -0
  55. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  56. package/dist/canonicalFace-C83I225R.cjs +1 -0
  57. package/dist/capabilities/detect.d.ts +45 -0
  58. package/dist/capabilities/index.d.ts +5 -0
  59. package/dist/capabilities/types.d.ts +120 -0
  60. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  61. package/dist/compat/environment.d.ts +5 -0
  62. package/dist/compat/index.d.ts +4 -0
  63. package/dist/compat/run.d.ts +18 -0
  64. package/dist/compat/scenarios.d.ts +10 -0
  65. package/dist/compat/types.d.ts +101 -0
  66. package/dist/components/Axes/index.d.ts +6 -0
  67. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  68. package/dist/components/BodyInstruction/index.d.ts +76 -0
  69. package/dist/components/BodyInstruction/useBodyPose.d.ts +30 -0
  70. package/dist/components/BodyRig/BodyAttachment.d.ts +28 -0
  71. package/dist/components/BodyRig/BodyOccluder.d.ts +27 -0
  72. package/dist/components/BodyRig/bodyDepth.d.ts +57 -0
  73. package/dist/components/BodyRig/index.d.ts +129 -0
  74. package/dist/components/BodyRig/useBodyDepthTexture.d.ts +40 -0
  75. package/dist/components/BodyTracker/index.d.ts +26 -1
  76. package/dist/components/BodyTrigger/index.d.ts +56 -0
  77. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  78. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  79. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  80. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  81. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  82. package/dist/components/FaceAtlas/index.d.ts +7 -0
  83. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  84. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  85. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  86. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  87. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  88. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  89. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  90. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  91. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  92. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  93. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  94. package/dist/components/FaceCharacter/index.d.ts +18 -0
  95. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  96. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  97. package/dist/components/FaceInset/frame.d.ts +94 -0
  98. package/dist/components/FaceInset/index.d.ts +6 -0
  99. package/dist/components/FaceInset/material.d.ts +40 -0
  100. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  101. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  102. package/dist/components/FaceInstruction/index.d.ts +56 -0
  103. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  104. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  105. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  106. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  107. package/dist/components/FaceLiquify/index.d.ts +10 -0
  108. package/dist/components/FaceLiquify/material.d.ts +39 -0
  109. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  110. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  111. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  112. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  113. package/dist/components/FaceLiquify/target.d.ts +85 -0
  114. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  115. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +25 -0
  116. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +70 -1
  117. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  118. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  119. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +30 -0
  120. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +24 -0
  121. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  122. package/dist/components/FaceMesh/deform.d.ts +3 -0
  123. package/dist/components/FaceMesh/index.d.ts +6 -1
  124. package/dist/components/FaceMesh/material/defaults.d.ts +74 -0
  125. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  126. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  127. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  128. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  129. package/dist/components/FaceMesh/material/types.d.ts +4 -2
  130. package/dist/components/FaceRetouch/Background.d.ts +11 -5
  131. package/dist/components/FaceRetouch/FaceRetouch.d.ts +52 -0
  132. package/dist/components/FaceRetouch/index.d.ts +2 -6
  133. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  134. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  135. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  136. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  137. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  138. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  139. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  140. package/dist/components/FaceSwap/index.d.ts +13 -0
  141. package/dist/components/FaceSwap/settings.d.ts +300 -0
  142. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  143. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  144. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  145. package/dist/components/FaceTracker/index.d.ts +5 -3
  146. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  147. package/dist/components/FaceWarp3D/index.d.ts +2 -0
  148. package/dist/components/Faceless/Faceless.d.ts +51 -0
  149. package/dist/components/Faceless/index.d.ts +2 -0
  150. package/dist/components/GestureListener/index.d.ts +11 -0
  151. package/dist/components/HairLock/HairLock.d.ts +39 -0
  152. package/dist/components/HairLock/index.d.ts +2 -0
  153. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  154. package/dist/components/HandCutout/index.d.ts +35 -0
  155. package/dist/components/HandEffect/index.d.ts +36 -0
  156. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  157. package/dist/components/HandInstruction/index.d.ts +74 -0
  158. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  159. package/dist/components/HandJoints2D/index.d.ts +6 -0
  160. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  161. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  162. package/dist/components/HandRig/HandNails.d.ts +61 -0
  163. package/dist/components/HandRig/HandOccluder.d.ts +45 -0
  164. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  165. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  166. package/dist/components/HandRig/index.d.ts +127 -0
  167. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  168. package/dist/components/HandRig/wristSolve.d.ts +96 -0
  169. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  170. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  171. package/dist/components/HandTouch/index.d.ts +2 -0
  172. package/dist/components/HandTracker/index.d.ts +12 -2
  173. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  174. package/dist/components/HandTracking2D/index.d.ts +5 -0
  175. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  176. package/dist/components/HandTracking3D/index.d.ts +6 -0
  177. package/dist/components/HeadBinding/index.d.ts +14 -0
  178. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  179. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  180. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  181. package/dist/components/HeadOccluder/NeckOccluder.d.ts +67 -0
  182. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  183. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  184. package/dist/components/HeadOccluder/index.d.ts +57 -3
  185. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  186. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  187. package/dist/components/HolisticTracker/index.d.ts +69 -0
  188. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  189. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  190. package/dist/components/Instruction/HintStage.d.ts +29 -0
  191. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  192. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  193. package/dist/components/Instruction/ghost.d.ts +129 -0
  194. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  195. package/dist/components/Instruction/hintLook.d.ts +81 -0
  196. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  197. package/dist/components/Instruction/index.d.ts +41 -0
  198. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  199. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  200. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  201. package/dist/components/IrisEffect/index.d.ts +51 -0
  202. package/dist/components/IrisEffect/settings.d.ts +117 -0
  203. package/dist/components/LightObject/index.d.ts +20 -0
  204. package/dist/components/LipEffect/LipEffect.d.ts +28 -0
  205. package/dist/components/LipEffect/LipEffectMaterial.d.ts +98 -0
  206. package/dist/components/LipEffect/LipEffects.d.ts +12 -0
  207. package/dist/components/LipEffect/defaults.d.ts +51 -0
  208. package/dist/components/LipEffect/index.d.ts +12 -0
  209. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  210. package/dist/components/LipEffect/settings.d.ts +375 -0
  211. package/dist/components/LipEffect/shader.d.ts +39 -0
  212. package/dist/components/LipEffect/types.d.ts +141 -0
  213. package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
  214. package/dist/components/LipEffect/uvGuide.d.ts +74 -0
  215. package/dist/components/LookAt/index.d.ts +23 -0
  216. package/dist/components/Makeup/Blush.d.ts +18 -0
  217. package/dist/components/Makeup/Brows.d.ts +20 -0
  218. package/dist/components/Makeup/Contour.d.ts +17 -0
  219. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  220. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  221. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  222. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  223. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  224. package/dist/components/Makeup/constants.d.ts +44 -0
  225. package/dist/components/Makeup/design.d.ts +106 -0
  226. package/dist/components/Makeup/designSamples.d.ts +42 -0
  227. package/dist/components/Makeup/eyes.d.ts +114 -0
  228. package/dist/components/Makeup/fields.d.ts +10 -0
  229. package/dist/components/Makeup/geometry.d.ts +106 -0
  230. package/dist/components/Makeup/index.d.ts +26 -0
  231. package/dist/components/Makeup/looks.d.ts +28 -0
  232. package/dist/components/Makeup/material.d.ts +239 -0
  233. package/dist/components/Makeup/settings.d.ts +54 -0
  234. package/dist/components/Makeup/shades.d.ts +143 -0
  235. package/dist/components/Makeup/shapes.d.ts +27 -0
  236. package/dist/components/Makeup/skinTone.d.ts +135 -0
  237. package/dist/components/Makeup/types.d.ts +110 -0
  238. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  239. package/dist/components/MeshRenderer/index.d.ts +59 -0
  240. package/dist/components/Necklace/Necklace.d.ts +44 -0
  241. package/dist/components/Necklace/index.d.ts +1 -0
  242. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  243. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  244. package/dist/components/PersonCutout/index.d.ts +46 -0
  245. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  246. package/dist/components/PersonCutout/personMask.d.ts +19 -0
  247. package/dist/components/PersonCutout/useBodyMaskTexture.d.ts +35 -0
  248. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  249. package/dist/components/PinToMesh/index.d.ts +47 -0
  250. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  251. package/dist/components/SceneObjectRenderer/index.d.ts +23 -0
  252. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  253. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  254. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  255. package/dist/components/Screen2D/index.d.ts +5 -0
  256. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  257. package/dist/components/ScreenGlass/index.d.ts +5 -0
  258. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  259. package/dist/components/ScreenGlass/types.d.ts +10 -0
  260. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  261. package/dist/components/ScreenGradient/index.d.ts +5 -0
  262. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  263. package/dist/components/ScreenGradient/types.d.ts +19 -0
  264. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  265. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  266. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  267. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  268. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  269. package/dist/components/ScreenImage/fit.d.ts +52 -0
  270. package/dist/components/ScreenImage/index.d.ts +10 -0
  271. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  272. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  273. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  274. package/dist/components/ScreenImage/source.d.ts +25 -0
  275. package/dist/components/ScreenImage/types.d.ts +64 -0
  276. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  277. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  278. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  279. package/dist/components/ScreenShape/index.d.ts +5 -0
  280. package/dist/components/ScreenShape/types.d.ts +54 -0
  281. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  282. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  283. package/dist/components/ScreenSpaceUI/index.d.ts +3 -0
  284. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  285. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  286. package/dist/components/ScreenText/constants.d.ts +5 -0
  287. package/dist/components/ScreenText/index.d.ts +6 -0
  288. package/dist/components/ScreenText/types.d.ts +31 -0
  289. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  290. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  291. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  292. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  293. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  294. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  295. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  296. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  297. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  298. package/dist/components/ShoulderOccluder/index.d.ts +46 -0
  299. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +27 -0
  300. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  301. package/dist/components/SpringSwing/index.d.ts +1 -0
  302. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  303. package/dist/components/TextLabel/alignment.d.ts +4 -0
  304. package/dist/components/TextLabel/bend.d.ts +9 -0
  305. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  306. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  307. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  308. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  309. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  310. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  311. package/dist/components/TextLabel/constants.d.ts +2 -0
  312. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  313. package/dist/components/TextLabel/index.d.ts +2 -62
  314. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  315. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  316. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  317. package/dist/components/TextLabel/types.d.ts +337 -0
  318. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  319. package/dist/components/Transform3D/index.d.ts +30 -0
  320. package/dist/components/XRMediaSurface/index.d.ts +8 -7
  321. package/dist/components/XRProvider/index.d.ts +16 -2
  322. package/dist/components/XRScene/index.d.ts +14 -3
  323. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  324. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  325. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  326. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  327. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  328. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  329. package/dist/components/XRViewport/constants.d.ts +24 -0
  330. package/dist/components/XRViewport/contexts.d.ts +6 -0
  331. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  332. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  333. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  334. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  335. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  336. package/dist/components/XRViewport/index.d.ts +3 -101
  337. package/dist/components/XRViewport/layout.d.ts +16 -0
  338. package/dist/components/XRViewport/slots.d.ts +16 -0
  339. package/dist/components/XRViewport/types.d.ts +89 -0
  340. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  341. package/dist/components/index.d.ts +31 -0
  342. package/dist/components/occluder/skinnedOccluder.d.ts +39 -0
  343. package/dist/config/index.d.ts +1 -1
  344. package/dist/constants/index.d.ts +4 -1
  345. package/dist/context-DTxSQvp4.js +13 -0
  346. package/dist/context-hA0Rb2Xa.cjs +1 -0
  347. package/dist/contexts-DQc7zyqT.cjs +1 -0
  348. package/dist/contexts-Y_FhdnIv.js +667 -0
  349. package/dist/coordinates/feed.d.ts +52 -0
  350. package/dist/coordinates/index.d.ts +7 -0
  351. package/dist/coordinates/side.d.ts +40 -0
  352. package/dist/coordinates/spaces.d.ts +49 -0
  353. package/dist/coordinates/viewport.d.ts +22 -0
  354. package/dist/coordinates/world.d.ts +15 -0
  355. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  356. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  357. package/dist/debug-ui/default-setting.cjs +21 -0
  358. package/dist/debug-ui/default-setting.js +777 -0
  359. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  360. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  361. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  362. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  363. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  364. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  365. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  366. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  367. package/dist/debug-ui/hierarchy-panel/index.d.ts +30 -0
  368. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  369. package/dist/debug-ui/index.d.ts +61 -0
  370. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  371. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  372. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  373. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  374. package/dist/debug-ui/media-source/index.d.ts +6 -0
  375. package/dist/debug-ui/media-source/media-preset.d.ts +21 -0
  376. package/dist/debug-ui/media-source/session.d.ts +40 -0
  377. package/dist/debug-ui/media-source.cjs +1 -0
  378. package/dist/debug-ui/media-source.js +11 -0
  379. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  380. package/dist/debug-ui/object-inspector-panel/index.d.ts +26 -0
  381. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  382. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  383. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  384. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +11 -0
  385. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  386. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +9 -0
  387. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  388. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  389. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  390. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  391. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  392. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  393. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  394. package/dist/debug-ui/screen-image-settings/index.d.ts +11 -0
  395. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  396. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  397. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  398. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  399. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  400. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  401. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  402. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  403. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  404. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  405. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  406. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  407. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  408. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  409. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  410. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  411. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  412. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  413. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  414. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  415. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  416. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  417. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  418. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  419. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  420. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  421. package/dist/debug-ui/screen-text-settings/types.d.ts +11 -0
  422. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  423. package/dist/debug-ui/settings-panel/index.d.ts +43 -0
  424. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  425. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  426. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  427. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  428. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  429. package/dist/debug-ui.cjs +10 -0
  430. package/dist/debug-ui.js +9051 -0
  431. package/dist/detector-K8aej4MB.js +59 -0
  432. package/dist/detector-ijypGtse.cjs +1 -0
  433. package/dist/drawNormalizedCrop-C4KFaRne.cjs +1 -0
  434. package/dist/drawNormalizedCrop-DG3gtJxf.js +135 -0
  435. package/dist/entries/all.d.ts +4 -1
  436. package/dist/entries/core.d.ts +76 -6
  437. package/dist/entries/face-effects.d.ts +130 -10
  438. package/dist/entries/instructions.d.ts +48 -0
  439. package/dist/entries/internal.d.ts +5 -2
  440. package/dist/entries/low-level.d.ts +104 -6
  441. package/dist/entries/particles.d.ts +15 -0
  442. package/dist/entries/product.d.ts +11 -0
  443. package/dist/entries/scene-object.d.ts +10 -0
  444. package/dist/entries/tracking.d.ts +110 -2
  445. package/dist/face-action/index.d.ts +34 -0
  446. package/dist/face-atlas/attributes.d.ts +30 -0
  447. package/dist/face-atlas/eyes.d.ts +272 -0
  448. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  449. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  450. package/dist/face-atlas/glsl/common.d.ts +55 -0
  451. package/dist/face-atlas/glsl/design.d.ts +49 -0
  452. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  453. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  454. package/dist/face-atlas/glsl/format.d.ts +4 -0
  455. package/dist/face-atlas/glsl/index.d.ts +59 -0
  456. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  457. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  458. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  459. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  460. package/dist/face-atlas/guide.d.ts +51 -0
  461. package/dist/face-atlas/index.d.ts +25 -0
  462. package/dist/face-atlas/lead.d.ts +117 -0
  463. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  464. package/dist/face-atlas/masks.d.ts +53 -0
  465. package/dist/face-atlas/obj.d.ts +69 -0
  466. package/dist/face-atlas/polylines.d.ts +63 -0
  467. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  468. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  469. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  470. package/dist/face-atlas/probe/constants.d.ts +137 -0
  471. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  472. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  473. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  474. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  475. package/dist/face-atlas/probe/stats.d.ts +143 -0
  476. package/dist/face-atlas/probe/targets.d.ts +70 -0
  477. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  478. package/dist/face-atlas/quality.d.ts +28 -0
  479. package/dist/face-atlas/regions.d.ts +31 -0
  480. package/dist/face-atlas/registry.d.ts +252 -0
  481. package/dist/face-atlas/renderState.d.ts +86 -0
  482. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  483. package/dist/face-atlas/shading.d.ts +406 -0
  484. package/dist/face-atlas/shapes.d.ts +86 -0
  485. package/dist/face-atlas/sides.d.ts +41 -0
  486. package/dist/face-atlas/skinMask.d.ts +35 -0
  487. package/dist/face-atlas/surface.d.ts +155 -0
  488. package/dist/face-atlas/topology.d.ts +44 -0
  489. package/dist/face-attribute-expression/index.d.ts +10 -0
  490. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  491. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  492. package/dist/face-character/bindFaceModel.d.ts +106 -0
  493. package/dist/face-character/canonicalFace.d.ts +17 -0
  494. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  495. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  496. package/dist/face-character/driveFaceModel.d.ts +57 -0
  497. package/dist/face-character/expressionOutputs.d.ts +45 -0
  498. package/dist/face-character/faceExpressions.d.ts +104 -0
  499. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  500. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  501. package/dist/face-character/faceMorph.d.ts +77 -0
  502. package/dist/face-character/faceMorphs.d.ts +46 -0
  503. package/dist/face-character/facePhoto.d.ts +138 -0
  504. package/dist/face-character/facePiercings.d.ts +116 -0
  505. package/dist/face-character/facePin.d.ts +131 -0
  506. package/dist/face-character/faceReprojection.d.ts +273 -0
  507. package/dist/face-character/faceReprojector.d.ts +171 -0
  508. package/dist/face-character/faceRig.d.ts +176 -0
  509. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  510. package/dist/face-character/faceTexture.d.ts +169 -0
  511. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  512. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  513. package/dist/face-character/faceTextureStats.d.ts +298 -0
  514. package/dist/face-character/faceTransfer.d.ts +396 -0
  515. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  516. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  517. package/dist/face-character/faceWarp3D.d.ts +101 -0
  518. package/dist/face-character/faceless.d.ts +79 -0
  519. package/dist/face-character/featureWarp.d.ts +28 -0
  520. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  521. package/dist/face-character/liveValue.d.ts +12 -0
  522. package/dist/face-character/memo.d.ts +15 -0
  523. package/dist/face-effects.cjs +2267 -195
  524. package/dist/face-effects.js +14191 -3346
  525. package/dist/face-expression/index.d.ts +182 -0
  526. package/dist/face-info/blendshapes.d.ts +3 -0
  527. package/dist/face-info/derive.d.ts +8 -0
  528. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  529. package/dist/face-info/getFaceInfo.d.ts +8 -0
  530. package/dist/face-info/index.d.ts +8 -0
  531. package/dist/face-info/landmarks.d.ts +35 -0
  532. package/dist/face-info/types.d.ts +69 -0
  533. package/dist/gestures/definitions.d.ts +98 -0
  534. package/dist/gestures/detector.d.ts +87 -0
  535. package/dist/gestures/index.d.ts +8 -0
  536. package/dist/gestures/measures.d.ts +114 -0
  537. package/dist/gestures/settings.d.ts +49 -0
  538. package/dist/getFaceInfo-BafgGT27.js +62 -0
  539. package/dist/getFaceInfo-BzlwHMjX.cjs +1 -0
  540. package/dist/hand/armFit.d.ts +46 -0
  541. package/dist/hand/armMask.d.ts +190 -0
  542. package/dist/hand/forearm.d.ts +114 -0
  543. package/dist/hand/handCutout.d.ts +23 -0
  544. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  545. package/dist/hand/handEffect.d.ts +38 -0
  546. package/dist/hand/handGestures.d.ts +524 -0
  547. package/dist/hand/handJoints2d.d.ts +49 -0
  548. package/dist/hand/handNail.d.ts +73 -0
  549. package/dist/hand/handPose.d.ts +98 -0
  550. package/dist/hand/handRigSolver.d.ts +159 -0
  551. package/dist/hand/handTattoo.d.ts +81 -0
  552. package/dist/hand/handTouch.d.ts +240 -0
  553. package/dist/hand/handTracking2d.d.ts +33 -0
  554. package/dist/hand/handTracking2dController.d.ts +65 -0
  555. package/dist/hand/handTracking3d.d.ts +52 -0
  556. package/dist/hand/nailImageMask.d.ts +40 -0
  557. package/dist/hand/nailMaskFingers.d.ts +23 -0
  558. package/dist/hand/nailTipRefine.d.ts +37 -0
  559. package/dist/hand/wrist.d.ts +44 -0
  560. package/dist/hand/wristFilter.d.ts +44 -0
  561. package/dist/hooks/faceResults.d.ts +1 -1
  562. package/dist/hooks/selectors.d.ts +77 -4
  563. package/dist/hooks/useBodies.d.ts +39 -0
  564. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  565. package/dist/hooks/useFaceAction.d.ts +3 -0
  566. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  567. package/dist/hooks/useFaceDetection.d.ts +18 -0
  568. package/dist/hooks/useFaceInfo.d.ts +19 -0
  569. package/dist/hooks/useFaceInfos.d.ts +15 -0
  570. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  571. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  572. package/dist/hooks/useFrameCapture.d.ts +18 -0
  573. package/dist/hooks/useGesture.d.ts +39 -0
  574. package/dist/hooks/useIrisTracking.d.ts +45 -0
  575. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  576. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  577. package/dist/hooks/useTrackerContext.d.ts +14 -2
  578. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  579. package/dist/hooks/useXRModel.d.ts +12 -0
  580. package/dist/hooks/useXRSession/facade.d.ts +47 -2
  581. package/dist/hooks/useXRSession/index.d.ts +2 -2
  582. package/dist/hooks/useXRSession/reason.d.ts +21 -0
  583. package/dist/hooks/useXRSession/registry.d.ts +23 -0
  584. package/dist/hooks/useXRSession/store.d.ts +64 -7
  585. package/dist/index-BZoBxyLn.js +1103 -0
  586. package/dist/index-By_LCo2V.cjs +1 -0
  587. package/dist/index-C-Mryx_u.cjs +21 -0
  588. package/dist/index-CKRN-xJp.js +3740 -0
  589. package/dist/index-CUldCMRl.js +188 -0
  590. package/dist/index-Cyk_VIZE.js +1432 -0
  591. package/dist/index-D-4w34GO.cjs +1 -0
  592. package/dist/index-DiIoHK_4.js +442 -0
  593. package/dist/index-Dv3WnY9n.cjs +46 -0
  594. package/dist/index-ItufYyHH.cjs +1 -0
  595. package/dist/index-S3gqudT6.cjs +1 -0
  596. package/dist/index-Sho4F4it.cjs +1 -0
  597. package/dist/index-iIQ9jBDb.js +240 -0
  598. package/dist/index-vr2ichWQ.js +190 -0
  599. package/dist/instructions.cjs +30 -0
  600. package/dist/instructions.js +1528 -0
  601. package/dist/internal-Bb9ZXbpr.cjs +1 -0
  602. package/dist/{internal-KOKJDxCG.js → internal-Gt1wn6Z3.js} +152 -127
  603. package/dist/internal.cjs +1 -1
  604. package/dist/internal.js +16 -9
  605. package/dist/iris/compute.d.ts +27 -0
  606. package/dist/iris/index.d.ts +4 -0
  607. package/dist/iris/lead.d.ts +19 -0
  608. package/dist/iris/types.d.ts +89 -0
  609. package/dist/landmarkMask-CvN-L5NT.cjs +1 -0
  610. package/dist/landmarkMask-DHivVjJm.js +225 -0
  611. package/dist/landmarks-BEjJXcnE.cjs +1 -0
  612. package/dist/landmarks-DtCAFV_m.js +76 -0
  613. package/dist/low-level.cjs +1 -1
  614. package/dist/low-level.js +1494 -629
  615. package/dist/main.cjs +1 -1
  616. package/dist/main.js +1306 -475
  617. package/dist/material/MaterialFill.d.ts +20 -0
  618. package/dist/material/MeshMaterial.d.ts +14 -0
  619. package/dist/material/index.d.ts +2 -0
  620. package/dist/models/Base/index.d.ts +49 -0
  621. package/dist/models/Body/index.d.ts +30 -1
  622. package/dist/models/Face/constants.d.ts +8 -0
  623. package/dist/models/Face/index.d.ts +5 -12
  624. package/dist/models/Face/rotation.d.ts +18 -0
  625. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  626. package/dist/models/Hand/HandTracking.d.ts +19 -1
  627. package/dist/models/Holistic/index.d.ts +49 -0
  628. package/dist/models/Holistic/result.d.ts +68 -0
  629. package/dist/models/Segmentation/index.d.ts +6 -3
  630. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  631. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  632. package/dist/models/index.d.ts +2 -0
  633. package/dist/models/nodeSource.d.ts +9 -0
  634. package/dist/particles/emission.d.ts +24 -0
  635. package/dist/particles/eyes.d.ts +24 -0
  636. package/dist/particles/glsl.d.ts +14 -0
  637. package/dist/particles/index.d.ts +10 -0
  638. package/dist/particles/motion.d.ts +42 -0
  639. package/dist/particles/presets.d.ts +12 -0
  640. package/dist/particles/ring.d.ts +58 -0
  641. package/dist/particles/selfTest.d.ts +53 -0
  642. package/dist/particles/settings.d.ts +127 -0
  643. package/dist/particles/shapes.d.ts +29 -0
  644. package/dist/particles/spawner.d.ts +71 -0
  645. package/dist/particles/system.d.ts +66 -0
  646. package/dist/particles.cjs +122 -0
  647. package/dist/particles.js +999 -0
  648. package/dist/product/ProductDimensions.d.ts +16 -0
  649. package/dist/product/ProductHotspot.d.ts +16 -0
  650. package/dist/product/ProductViewer.d.ts +9 -0
  651. package/dist/product/details.d.ts +53 -0
  652. package/dist/product/index.d.ts +14 -0
  653. package/dist/product/loadModelViewer.d.ts +4 -0
  654. package/dist/product/types.d.ts +71 -0
  655. package/dist/product/useProductAr.d.ts +37 -0
  656. package/dist/product/useProductDetails.d.ts +60 -0
  657. package/dist/product.cjs +1 -0
  658. package/dist/product.js +414 -0
  659. package/dist/providers-CEZQgz2s.cjs +62 -0
  660. package/dist/providers-CRuaD8bi.js +424 -0
  661. package/dist/quality/XRQualityController.d.ts +25 -0
  662. package/dist/quality/controller.d.ts +33 -0
  663. package/dist/quality/index.d.ts +6 -0
  664. package/dist/quality/types.d.ts +100 -0
  665. package/dist/quality/useXRQuality.d.ts +28 -0
  666. package/dist/render/layerStack.d.ts +29 -0
  667. package/dist/render/renderGroups.d.ts +47 -0
  668. package/dist/render/renderPasses.d.ts +26 -0
  669. package/dist/render/sceneBeforeRender.d.ts +12 -0
  670. package/dist/renderGroups-BADrepA1.cjs +1 -0
  671. package/dist/renderGroups-CNB99dZ2.js +152 -0
  672. package/dist/renderPasses-DgxUKn9b.cjs +158 -0
  673. package/dist/renderPasses-DuapJA6V.js +1290 -0
  674. package/dist/renderState-CJNmj5jz.js +39 -0
  675. package/dist/renderState-apSfg4eR.cjs +1 -0
  676. package/dist/scene-object/index.d.ts +146 -0
  677. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  678. package/dist/scene-object.cjs +1 -0
  679. package/dist/scene-object.js +40 -0
  680. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  681. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  682. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  683. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  684. package/dist/screen2d/coordinates.d.ts +107 -0
  685. package/dist/screen2d/index.d.ts +7 -0
  686. package/dist/screen2d/material-runtime.d.ts +32 -0
  687. package/dist/screen2d/screenTransform.d.ts +60 -0
  688. package/dist/screen2d/smoothing.d.ts +5 -0
  689. package/dist/screen2d/texture.d.ts +10 -0
  690. package/dist/screen2d/transform.d.ts +25 -0
  691. package/dist/screen2d/types.d.ts +90 -0
  692. package/dist/segmentation-BOZJdWFC.js +1911 -0
  693. package/dist/segmentation-J8GoNBvP.cjs +1 -0
  694. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  695. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  696. package/dist/segmentation2d/index.d.ts +9 -0
  697. package/dist/segmentation2d/maskUv.d.ts +23 -0
  698. package/dist/segmentation2d/rasterize.d.ts +14 -0
  699. package/dist/segmentation2d/types.d.ts +52 -0
  700. package/dist/selectors-BvJepq6H.js +196 -0
  701. package/dist/selectors-QB2qsaxy.cjs +1 -0
  702. package/dist/services/MetricsCollector/index.d.ts +7 -1
  703. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  704. package/dist/session-BVX859as.cjs +31 -0
  705. package/dist/session-Cz8aie4K.js +493 -0
  706. package/dist/settings-BJ7FMBsO.js +111 -0
  707. package/dist/settings-C63FMBlF.cjs +1 -0
  708. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  709. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  710. package/dist/spring/index.d.ts +2 -0
  711. package/dist/spring/spring.d.ts +69 -0
  712. package/dist/spring/swing.d.ts +54 -0
  713. package/dist/subjects/index.d.ts +2 -0
  714. package/dist/subjects/select.d.ts +70 -0
  715. package/dist/subjects/types.d.ts +59 -0
  716. package/dist/texture/animatedTexture.d.ts +63 -0
  717. package/dist/texture/animationMath.d.ts +8 -0
  718. package/dist/texture/gifReader.d.ts +17 -0
  719. package/dist/texture/gifTextureSource.d.ts +16 -0
  720. package/dist/texture/sourceResolver.d.ts +30 -0
  721. package/dist/textures-BVwo9Z7z.js +38 -0
  722. package/dist/textures-DAfc61zz.cjs +1 -0
  723. package/dist/tracking/coordinates.d.ts +5 -0
  724. package/dist/tracking-config/apply.d.ts +57 -0
  725. package/dist/tracking-config/index.d.ts +7 -0
  726. package/dist/tracking-config/resolve.d.ts +25 -0
  727. package/dist/tracking-config/storage.d.ts +8 -0
  728. package/dist/tracking-config/types.d.ts +106 -0
  729. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  730. package/dist/tracking.cjs +10 -1
  731. package/dist/tracking.js +1531 -294
  732. package/dist/trigger-D9L4GPmQ.js +3726 -0
  733. package/dist/trigger-DZ9vU7jo.cjs +147 -0
  734. package/dist/types/common.d.ts +11 -1
  735. package/dist/types/compositor.d.ts +21 -0
  736. package/dist/types/face.d.ts +21 -14
  737. package/dist/types/gesture-tracking.d.ts +2 -2
  738. package/dist/types/hand-tracking.d.ts +19 -2
  739. package/dist/types/holistic.d.ts +121 -0
  740. package/dist/types/index.d.ts +1 -1
  741. package/dist/types/model.d.ts +22 -2
  742. package/dist/types/nodes.d.ts +83 -6
  743. package/dist/types/segmentation.d.ts +26 -0
  744. package/dist/types/session.d.ts +50 -4
  745. package/dist/types/tracking.d.ts +8 -2
  746. package/dist/types/util-types.d.ts +1 -1
  747. package/dist/useBodies-BYzJpQ4L.js +75 -0
  748. package/dist/useBodies-Cxpmx6Bb.cjs +1 -0
  749. package/dist/useFaceInfo-BzEUj2OI.js +75 -0
  750. package/dist/useFaceInfo-DlLRAVNw.cjs +1 -0
  751. package/dist/useFaceResultReader-Cc4Qrutf.js +61 -0
  752. package/dist/useFaceResultReader-D3jOQNKz.cjs +1 -0
  753. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  754. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  755. package/dist/useIrisTracking-Bz4uLDa7.js +6190 -0
  756. package/dist/useIrisTracking-DRGWgoNy.cjs +35 -0
  757. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  758. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  759. package/dist/useXRCapabilities-B1KLckqw.js +30 -0
  760. package/dist/useXRCapabilities-CZlPUBjF.cjs +1 -0
  761. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  762. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  763. package/dist/utils/fns.d.ts +6 -3
  764. package/dist/utils/headOccluderFit.d.ts +42 -0
  765. package/dist/utils/integrity.d.ts +25 -26
  766. package/dist/utils/landmarkBounds.d.ts +1 -1
  767. package/dist/utils/logger.d.ts +2 -2
  768. package/dist/utils/resolveNumFaces.d.ts +13 -0
  769. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  770. package/dist/utils/similarityFit.d.ts +23 -0
  771. package/dist/utils/updateThrottle.d.ts +2 -0
  772. package/dist/utils/useStableUniforms.d.ts +18 -0
  773. package/dist/utils/visionWasm.d.ts +18 -0
  774. package/dist/uv-BMFt19bg.cjs +1 -0
  775. package/dist/{index-BD-JWMjE.js → uv-DJU_XfmN.js} +15 -180
  776. package/dist/x-Co8jPhP0.js +127 -0
  777. package/dist/x-KC8E4Gaj.cjs +41 -0
  778. package/docs/MIGRATION_GUIDE.md +589 -0
  779. package/docs/SDK_DOCUMENTATION.md +1157 -0
  780. package/docs/api/adaptive-quality.mdx +104 -0
  781. package/docs/api/asset-lifecycle.mdx +78 -0
  782. package/docs/api/audio.mdx +36 -0
  783. package/docs/api/behavior-components.mdx +164 -0
  784. package/docs/api/body-instructions.mdx +287 -0
  785. package/docs/api/body-rig.mdx +384 -0
  786. package/docs/api/body-triggers.mdx +235 -0
  787. package/docs/api/camera-permission.mdx +142 -0
  788. package/docs/api/capture-recording.mdx +111 -0
  789. package/docs/api/coordinate-spaces.mdx +168 -0
  790. package/docs/api/cross-camera.mdx +89 -0
  791. package/docs/api/debug-ui-scene-editor.mdx +270 -0
  792. package/docs/api/diagnostics-calibration.mdx +97 -0
  793. package/docs/api/external-face-mesh.mdx +231 -0
  794. package/docs/api/face-actions.mdx +108 -0
  795. package/docs/api/face-attribute-expression.mdx +87 -0
  796. package/docs/api/face-binding-anchors.mdx +55 -0
  797. package/docs/api/face-character.mdx +157 -0
  798. package/docs/api/face-effects.mdx +28 -0
  799. package/docs/api/face-expression-controller.mdx +153 -0
  800. package/docs/api/face-info.mdx +118 -0
  801. package/docs/api/face-inset.mdx +204 -0
  802. package/docs/api/face-instructions.mdx +183 -0
  803. package/docs/api/face-liquify.mdx +196 -0
  804. package/docs/api/face-mesh.mdx +130 -0
  805. package/docs/api/face-morph.mdx +117 -0
  806. package/docs/api/face-painting.mdx +40 -0
  807. package/docs/api/face-reprojection.mdx +154 -0
  808. package/docs/api/face-retouching.mdx +81 -0
  809. package/docs/api/face-swap.mdx +350 -0
  810. package/docs/api/face-warp-3d.mdx +166 -0
  811. package/docs/api/faceless.mdx +143 -0
  812. package/docs/api/gestures.mdx +210 -0
  813. package/docs/api/hair.mdx +97 -0
  814. package/docs/api/hand-instructions.mdx +222 -0
  815. package/docs/api/hand-rig.mdx +661 -0
  816. package/docs/api/hand-touch.mdx +162 -0
  817. package/docs/api/head-occluder.mdx +563 -0
  818. package/docs/api/holistic-tracker.mdx +164 -0
  819. package/docs/api/instructions.mdx +323 -0
  820. package/docs/api/iris-tracking.mdx +247 -0
  821. package/docs/api/made-up-camera.mdx +131 -0
  822. package/docs/api/makeup-skin-tone.mdx +135 -0
  823. package/docs/api/makeup.mdx +353 -0
  824. package/docs/api/material-render-state.mdx +132 -0
  825. package/docs/api/multi-subject.mdx +185 -0
  826. package/docs/api/particles.mdx +183 -0
  827. package/docs/api/person-cutout.mdx +171 -0
  828. package/docs/api/pin-to-face-mesh.mdx +274 -0
  829. package/docs/api/product-ar.mdx +114 -0
  830. package/docs/api/product-details.mdx +78 -0
  831. package/docs/api/runtime-3d.mdx +316 -0
  832. package/docs/api/scene-object-store.mdx +213 -0
  833. package/docs/api/screen-image.mdx +67 -0
  834. package/docs/api/screen-shape.mdx +64 -0
  835. package/docs/api/screen-space-coordinates.mdx +75 -0
  836. package/docs/api/screen-text.mdx +39 -0
  837. package/docs/api/segmentation-overlay.mdx +301 -0
  838. package/docs/api/session-lifecycle.mdx +136 -0
  839. package/docs/api/texture-sources.mdx +74 -0
  840. package/docs/api/trackers.mdx +65 -0
  841. package/docs/api/tracking-config.mdx +108 -0
  842. package/docs/docs.json +121 -0
  843. package/docs/examples/lip-shaders.mdx +273 -0
  844. package/docs/examples/scene-object-recipes.mdx +194 -0
  845. package/docs/guides/face-atlas-template.svg +1 -0
  846. package/docs/guides/face-atlas-textures.mdx +186 -0
  847. package/docs/guides/face-texture-template.svg +1 -0
  848. package/docs/guides/harness-debug-ui.mdx +139 -0
  849. package/docs/guides/lip-effect-textures.mdx +368 -0
  850. package/docs/guides/lip-uv-template.png +0 -0
  851. package/docs/guides/lip-uv-template.svg +1 -0
  852. package/docs/guides/makeup-design-textures.mdx +109 -0
  853. package/docs/inspector/hierarchy-panel.mdx +51 -0
  854. package/docs/inspector/object-inspector-panel.mdx +51 -0
  855. package/docs/introduction.mdx +120 -0
  856. package/docs/scene-objects/overview.mdx +127 -0
  857. package/docs/scene-objects/render-groups.mdx +77 -0
  858. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  859. package/docs/texture-api-consumer.md +84 -0
  860. package/package.json +86 -8
  861. package/settings.json +1998 -0
  862. package/dist/DebuggerUI-CEfdddkZ.cjs +0 -1
  863. package/dist/DebuggerUI-Dgop6Q6o.js +0 -269
  864. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  865. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  866. package/dist/index-B5J4gzn2.cjs +0 -1
  867. package/dist/index-BVBVg96G.cjs +0 -1
  868. package/dist/index-CYMj26Ej.js +0 -1331
  869. package/dist/index-DtwHElmG.js +0 -157
  870. package/dist/index-PtFmD6B8.cjs +0 -1
  871. package/dist/internal-DH5d1Xnq.cjs +0 -1
  872. package/dist/modules/XRClient/index.d.ts +0 -9
  873. package/dist/modules/index.d.ts +0 -1
  874. package/dist/selectors-BHO6TnoC.js +0 -59
  875. package/dist/selectors-Bub0o3qy.cjs +0 -1
  876. package/dist/services/ApiService.d.ts +0 -12
  877. package/dist/types/client.d.ts +0 -3
  878. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  879. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
package/dist/main.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Y=Object.defineProperty;var K=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var E=(s,e,t)=>K(s,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),A=require("./index-PtFmD6B8.cjs"),W=require("./index-BVBVg96G.cjs"),f=require("react/jsx-runtime"),I=require("@react-three/fiber"),O=require("three"),N=require("./selectors-Bub0o3qy.cjs"),J=require("@react-three/drei");function Q(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const H=Q(O),q=9,B=16,ee=({children:s})=>{const[e,t]=u.useState({width:0,height:0});return u.useEffect(()=>{const n=()=>{const i=document.documentElement.clientWidth,c=document.documentElement.clientHeight,o=i/c,a=q/B;let r,d;o>a?(d=c,r=d*q/B):(r=i,d=r*B/q),t({width:r,height:d})};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),f.jsx("div",{style:{width:"100vw",height:`${window.innerHeight}px`,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#0d0d0d"},children:f.jsx("div",{style:{width:e.width,height:e.height,position:"relative"},children:s})})},te="rgba(20,40,110,0.88)",se=24,ne=512;function re({color:s=te,borderColor:e,borderWidth:t=0,borderRadius:n=se,resolution:i=ne,aspect:c=1,opacity:o=1,name:a,overlay:r=!0,position:d,rotation:M,scale:g,visible:l}){const x=u.useRef(null),T=u.useRef(null),S=u.useMemo(()=>ie({width:Math.round(i*Math.max(c,.05)),height:Math.round(i),color:s,borderColor:e,borderWidth:t,borderRadius:n}),[s,e,t,n,i,c]);u.useEffect(()=>()=>{S.dispose()},[S]);const y=u.useRef(null),b=u.useRef(o);return b.current!==o&&(b.current=o,y.current=null,T.current&&(T.current.opacity=o)),u.useEffect(()=>{const h=x.current;if(h)return h.userData.setOpacity=P=>{y.current=P,T.current&&(T.current.opacity=P)},()=>{delete h.userData.setOpacity}},[]),f.jsxs("mesh",{ref:x,name:a,position:d,rotation:M,scale:g,visible:l,children:[f.jsx("planeGeometry",{args:[1,1]}),f.jsx("meshBasicMaterial",{ref:T,map:S,transparent:!0,opacity:o,depthTest:!r,depthWrite:!r})]})}function ie(s){const{width:e,height:t,color:n,borderColor:i,borderWidth:c,borderRadius:o}=s,a=typeof OffscreenCanvas<"u"?new OffscreenCanvas(e,t):(()=>{const g=document.createElement("canvas");return g.width=e,g.height=t,g})(),r=a.getContext("2d");r.clearRect(0,0,e,t);const d=Math.min(o,Math.min(e,t)/2);r.beginPath(),r.moveTo(d,0),r.lineTo(e-d,0),r.quadraticCurveTo(e,0,e,d),r.lineTo(e,t-d),r.quadraticCurveTo(e,t,e-d,t),r.lineTo(d,t),r.quadraticCurveTo(0,t,0,t-d),r.lineTo(0,d),r.quadraticCurveTo(0,0,d,0),r.closePath(),r.fillStyle=n,r.fill(),i&&c>0&&(r.lineWidth=c,r.strokeStyle=i,r.stroke());const M=new H.CanvasTexture(a);return M.needsUpdate=!0,M}const oe=({children:s,depth:e=0})=>{const{camera:t,size:n}=I.useThree(),i=u.useMemo(()=>{if(!(t instanceof O.PerspectiveCamera))return{width:10,height:10};const c=Math.abs(t.position.z-e),o=t.fov*Math.PI/180,a=2*Math.tan(o/2)*c;return{width:a*(n.width/n.height),height:a}},[t,n,e]);return f.jsx(W.ScreenSpaceContext.Provider,{value:i,children:f.jsx("group",{position:[0,0,e],children:s})})};function Z(s,e){return!Number.isFinite(s)||!Number.isFinite(e)||s<=0||e<=0?[1,1,1]:Math.abs(s-e)<1e-6?[1,1,1]:s>e?[e/s,1,1]:[1,s/e,1]}const ae={left:-1,right:1,top:1,bottom:-1},ce=(s,e,t)=>{const n=s%e,i=Math.floor(s/e);return{x:n/e,y:(t-1-i)/t}},ue=({sheet:s,contentAspect:e,renderOrder:t,name:n})=>{const i=J.useTexture(s.url),c=u.useRef(0),o=u.useRef(-1),a=W.useScreenRectAspect(),[r,d]=e!=null?Z(a,e):[1,1];return I.useFrame((M,g)=>{i.wrapS=O.RepeatWrapping,i.wrapT=O.RepeatWrapping,i.magFilter=O.LinearFilter,i.minFilter=O.LinearFilter,i.generateMipmaps=!1,i.repeat.set(1/s.cols,1/s.rows),c.current+=g;const l=Math.floor(c.current*s.fps)%s.frames;if(l===o.current)return;o.current=l;const{x,y:T}=ce(l,s.cols,s.rows);i.offset.set(x,T)}),f.jsxs("mesh",{name:n,renderOrder:t,scale:[r,d,1],children:[f.jsx("planeGeometry",{args:[1,1]}),f.jsx("meshBasicMaterial",{map:i,transparent:!0,toneMapped:!1,depthWrite:!1})]})},le=({sheet:s,anchors:e=ae,contentAspect:t,renderOrder:n=10,name:i="spriteAnimation"})=>f.jsx(u.Suspense,{fallback:null,children:f.jsx(W.ScreenTransform,{anchors:e,children:f.jsx(ue,{sheet:s,contentAspect:t,renderOrder:n,name:i})})}),de={color:"#ffffff",fontWeight:"bold",fontFamily:"Arial, sans-serif",fontSize:48,bgColor:"rgba(20,40,110,0.88)",borderWidth:0,borderRadius:24,padding:32,aspect:2.5,resolution:512,opacity:1};function fe(s){const e={...de,...s},{text:t,color:n,fontWeight:i,fontFamily:c,fontSize:o,bgColor:a,borderColor:r,borderWidth:d,borderRadius:M,padding:g,aspect:l,resolution:x,opacity:T,name:S,overlay:y=!0,position:b,rotation:h,scale:P,visible:z}=e,[D,U]=u.useState(null),[_,F]=u.useState(null),p=u.useRef(t);p.current!==t&&(p.current=t,D!==null&&U(null));const v=u.useRef(a);v.current!==a&&(v.current=a,_!==null&&F(null));const m=u.useRef(null),C=D??t,k=_??a,j=u.useMemo(()=>he({text:C,color:n,fontWeight:i,fontFamily:c,fontSize:o,bgColor:k,borderColor:r,borderWidth:d,borderRadius:M,padding:g,height:x,width:Math.round(x*Math.max(l,.1))}),[C,n,i,c,o,k,r,d,M,g,l,x]);return u.useEffect(()=>{const R=m.current;if(R)return R.userData.setText=L=>U(L),R.userData.setBgColor=L=>F(L),()=>{delete R.userData.setText,delete R.userData.setBgColor}},[]),u.useEffect(()=>()=>{j.dispose()},[j]),f.jsxs("mesh",{ref:m,name:S,position:b,rotation:h,scale:P,visible:z,children:[f.jsx("planeGeometry",{args:[1,1]}),f.jsx("meshBasicMaterial",{map:j,transparent:!0,opacity:T,depthTest:!y,depthWrite:!y})]})}function he(s){const{width:e,height:t,text:n,color:i,fontFamily:c,fontWeight:o,padding:a}=s;let{fontSize:r,bgColor:d}=s,M;const g=typeof OffscreenCanvas<"u"?new OffscreenCanvas(e,t):(()=>{const h=document.createElement("canvas");return h.width=e,h.height=t,h})(),l=g.getContext("2d");if(l.clearRect(0,0,e,t),d!=="transparent"){const h=Math.min(s.borderRadius,Math.min(e,t)/2);l.beginPath(),l.moveTo(h,0),l.lineTo(e-h,0),l.quadraticCurveTo(e,0,e,h),l.lineTo(e,t-h),l.quadraticCurveTo(e,t,e-h,t),l.lineTo(h,t),l.quadraticCurveTo(0,t,0,t-h),l.lineTo(0,h),l.quadraticCurveTo(0,0,h,0),l.closePath(),l.fillStyle=d,l.fill(),s.borderColor&&s.borderWidth>0&&(l.lineWidth=s.borderWidth,l.strokeStyle=s.borderColor,l.stroke())}l.fillStyle=i,l.textAlign="center",l.textBaseline="middle";const x=e-a*2;let T=X(l,n,x,o,r,c);const S=Math.max(1,Math.floor((t-a*2)/(r*1.3)));T.length>S&&(r=Math.max(12,Math.round(r*.75)),T=X(l,n,x,o,r,c)),l.font=`${o} ${r}px ${c}`;const y=r*1.3,b=t/2-(T.length-1)*y/2;for(let h=0;h<T.length;h++)l.fillText(T[h],e/2,b+h*y);return M=new H.CanvasTexture(g),M.needsUpdate=!0,M}function X(s,e,t,n,i,c){s.font=`${n} ${i}px ${c}`;const o=e.split(" "),a=[];let r="";for(const d of o){const M=r?`${r} ${d}`:d;s.measureText(M).width>t&&r?(a.push(r),r=d):r=M}return r&&a.push(r),a}const pe=({segmentationMask:s,segmentation:e,invert:t=!1,customBackground:n,renderOrder:i=A.RENDER_LAYERS.BACKGROUND})=>{const{camera:c,size:o}=I.useThree(),a=N.useXRCameraTexture(),r=N.useXRModelNode(A.XRModel.BACKGROUND_SEGMENTATION),d=e?r==null?void 0:r.backgroundSegmentationMask:void 0,M=u.useRef(!1);u.useEffect(()=>{if(!e){M.current=!1;return}r===null&&!M.current&&(console.warn(`[VideoBackground] segmentation="${e}" set but no matching <Segmentation> component is mounted; rendering unmasked.`),M.current=!0)},[e,r]);const g=e?d:s,l=u.useMemo(()=>{if(!(c instanceof O.PerspectiveCamera))return[10,10];const S=(c.position.z||5)- -1,y=c.fov*Math.PI/180,b=2*Math.tan(y/2)*S;return[b*(o.width/o.height),b]},[c,o]);return a?f.jsx("group",{position:[0,0,-1],children:t?f.jsxs(f.Fragment,{children:[f.jsxs("mesh",{position:[0,0,-.01],renderOrder:i-1,children:[f.jsx("planeGeometry",{args:l}),f.jsx("meshBasicMaterial",{map:a,depthTest:!1,depthWrite:!1,toneMapped:!1})]}),n&&g&&f.jsxs("mesh",{position:[0,0,0],renderOrder:i,children:[f.jsx("planeGeometry",{args:l}),f.jsx("meshBasicMaterial",{map:typeof n=="string"?void 0:n,color:typeof n=="string"?n:void 0,alphaMap:g,transparent:!1,alphaTest:.5,depthTest:!1,depthWrite:!1,toneMapped:!1},"inverted-mask")]})]}):f.jsxs(f.Fragment,{children:[n&&g&&f.jsxs("mesh",{position:[0,0,-.01],renderOrder:i-1,children:[f.jsx("planeGeometry",{args:l}),f.jsx("meshBasicMaterial",{map:typeof n=="string"?void 0:n,color:typeof n=="string"?n:void 0,depthTest:!1,depthWrite:!1,toneMapped:!1})]}),f.jsxs("mesh",{position:[0,0,0],renderOrder:i,children:[f.jsx("planeGeometry",{args:l}),f.jsx("meshBasicMaterial",{map:a,alphaMap:g,transparent:!1,alphaTest:g?.5:void 0,depthTest:!1,depthWrite:!1,toneMapped:!1},g?"with-mask":"no-mask")]})]})}):null},me=["video/mp4","video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"];function ge(s={}){const{audio:e=!1,mimeType:t,bitsPerSecond:n,onData:i,onStop:c,passThroughStream:o}=s,a=u.useRef(null),r=u.useRef(null),d=u.useRef([]),[M,g]=u.useState(!1),[l,x]=u.useState(!1),[T,S]=u.useState(null),[y,b]=u.useState(null),h=u.useCallback(()=>{var v;const p=[t,...me].filter(Boolean);for(const m of p)if((v=MediaRecorder.isTypeSupported)!=null&&v.call(MediaRecorder,m))return m},[t]),P=u.useCallback(async p=>{const v=new MediaStream;if(p.getTracks().forEach(m=>v.addTrack(m)),e){let m;if(e instanceof MediaStream)m=e;else{const C=typeof e=="object"?{audio:e}:{audio:!0,video:!1};m=await navigator.mediaDevices.getUserMedia(C)}m.getAudioTracks().forEach(C=>v.addTrack(C))}if(!v.getTracks().length)throw new Error("No tracks available in combined stream.");return r.current=v,v},[e]),z=u.useCallback(async(p,v)=>{try{let m;o?(m=p,r.current=m):m=await P(p);const C=h(),k={};C&&(k.mimeType=C),n&&(k.bitsPerSecond=n);const j=new MediaRecorder(m,k);j.ondataavailable=R=>{var L;((L=R.data)==null?void 0:L.size)>0&&(d.current.push(R.data),i==null||i(R.data))},j.onstop=()=>{const R=new Blob(d.current,{type:C??"video/webm"});S(R),c==null||c(R),d.current=[]},a.current=j,j.start(v),g(!0),x(!1)}catch(m){console.error("start(stream) failed",m),b(m instanceof Error?m:new Error(String(m)))}},[P,h,n,i,c,o]),D=u.useCallback(()=>{const p=a.current;p&&p.state!=="inactive"&&p.stop(),g(!1),x(!1)},[]),U=u.useCallback(()=>{const p=a.current;(p==null?void 0:p.state)==="recording"&&(p.pause(),x(!0))},[]),_=u.useCallback(()=>{const p=a.current;(p==null?void 0:p.state)==="paused"&&(p.resume(),x(!1))},[]),F=u.useCallback(()=>{var p,v;try{(p=a.current)==null||p.stop(),a.current=null,(v=r.current)==null||v.getTracks().forEach(m=>m.stop()),r.current=null,S(null),g(!1),x(!1),d.current=[],b(null)}catch(m){console.error("clear failed",m)}},[]);return u.useEffect(()=>()=>F(),[]),{start:z,stop:D,pause:U,resume:_,clear:F,isRecording:M,isPaused:l,recordedBlob:T,error:y,getActiveStream:()=>r.current}}const Me=(s,e)=>{const t=s.split(","),n=t[0].match(/:(.*?);/),i=n?n[1]:"application/octet-stream",c=atob(t[t.length-1]);let o=c.length;const a=new Uint8Array(o);for(;o--;)a[o]=c.charCodeAt(o);return new File([a],e,{type:i})},xe=4,Te=50,ve=5e3,$=s=>new Promise(e=>{if(s.readyState>=4){e();return}let t=!1;const n=()=>{t||(t=!0,e())};s.addEventListener("canplaythrough",n,{once:!0}),s.addEventListener("error",n,{once:!0}),setTimeout(n,ve)}),G=(s,e)=>{const t=document.createElement("audio");return t.src=s,t.loop=e,t.preload="auto",t.setAttribute("playsinline",""),t.setAttribute("webkit-playsinline",""),t.load(),t},Se=s=>{s.muted=!0,s.play().then(()=>{s.pause(),s.currentTime=0,s.muted=!1}).catch(()=>{s.muted=!1})};class V{constructor(e={}){E(this,"sfxPoolSize");E(this,"coalesceMs");E(this,"muted",!0);E(this,"listeners",new Set);E(this,"music",null);E(this,"musicWanted",null);E(this,"pools",new Map);E(this,"lastPlayed",new Map);E(this,"ready",new Map);this.sfxPoolSize=e.sfxPoolSize??xe,this.coalesceMs=e.coalesceMs??Te}prefetchMusic(e,t=.4){this.musicWanted={url:e,volume:t};const n=`music:${e}`,i=this.ready.get(n);if(i)return i;this.music=G(e,!0),this.music.volume=t;const c=$(this.music);return this.ready.set(n,c),c}registerSound(e,t=1){const n=this.ready.get(e);if(n)return n;const i=[];for(let o=0;o<this.sfxPoolSize;o+=1){const a=G(e,!1);a.volume=t,a.addEventListener("ended",()=>{a.currentTime=0}),i.push(a)}this.pools.set(e,{els:i,next:0,volume:t});const c=$(i[0]);return this.ready.set(e,c),c}onMuteChange(e){return this.listeners.add(e),e(this.muted),()=>this.listeners.delete(e)}isMuted(){return this.muted}setMuted(e){e!==this.muted&&(this.muted=e,this.muted||this.pools.forEach(t=>t.els.forEach(Se)),this.applyMusic(),this.listeners.forEach(t=>t(this.muted)))}toggleMuted(){this.setMuted(!this.muted)}playOneShot(e,t){if(this.muted)return;const n=this.pools.get(e);if(!n)return;const i=performance.now();if(i-(this.lastPlayed.get(e)??-1/0)<this.coalesceMs)return;this.lastPlayed.set(e,i);const c=n.els.length;let o;for(let a=0;a<c;a+=1){const r=n.els[(n.next+a)%c];if(r.paused){o=r,n.next=(n.next+a+1)%c;break}}o||(o=n.els[n.next],n.next=(n.next+1)%c),o.muted=!1,o.volume=t??n.volume,o.currentTime!==0&&(o.currentTime=0),o.play().catch(()=>{})}startMusic(e,t=.4){this.musicWanted={url:e,volume:t},this.applyMusic()}stopMusic(){this.musicWanted=null,this.music&&(this.music.pause(),this.music.currentTime=0)}applyMusic(){!this.music||!this.musicWanted||(this.music.volume=this.musicWanted.volume,!this.muted&&this.music.paused&&this.music.play().catch(()=>{}),this.muted&&!this.music.paused&&this.music.pause())}}const w=new V,ye=(s,e)=>w.prefetchMusic(s,e),be=(s,e)=>w.registerSound(s,e),Re=(s,e)=>w.startMusic(s,e),we=()=>w.stopMusic(),Ce=(s,e)=>w.playOneShot(s,e),Ee=s=>w.setMuted(s),je=()=>w.toggleMuted(),Pe=()=>w.isMuted(),Oe=s=>w.onMuteChange(s),ke=()=>{const[s,e]=u.useState(w.isMuted());return u.useEffect(()=>w.onMuteChange(e),[]),s};exports.XRMediaSource=A.XRMediaSource;exports.XRModel=A.XRModel;exports.XRProvider=A.XRProvider;exports.ScreenTransform=W.ScreenTransform;exports.XRScene=W.XRScene;exports.useScreenRectAspect=W.useScreenRectAspect;exports.AspectRatioContainer=ee;exports.AudioEngine=V;exports.Panel=re;exports.ScreenSpaceUI=oe;exports.SpriteAnimation=le;exports.TextLabel=fe;exports.VideoBackground=pe;exports.audio=w;exports.computeContainScale=Z;exports.dataURLtoFile=Me;exports.isMuted=Pe;exports.onMuteChange=Oe;exports.playOneShot=Ce;exports.prefetchMusic=ye;exports.registerSound=be;exports.setMuted=Ee;exports.startMusic=Re;exports.stopMusic=we;exports.toggleMuted=je;exports.useMediaRecorder=ge;exports.useMuted=ke;
1
+ "use strict";var ze=Object.defineProperty;var He=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var P=(e,t,r)=>He(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-Sho4F4it.cjs"),me=require("./contexts-DQc7zyqT.cjs"),Pe=require("./TextLabel-XE0rQSDn.cjs"),g=require("react/jsx-runtime"),c=require("react"),v=require("three"),x=require("./index-C-Mryx_u.cjs"),Ne=require("@react-three/fiber"),We=require("./uv-BMFt19bg.cjs"),le=require("./selectors-QB2qsaxy.cjs"),I=require("./drawNormalizedCrop-C4KFaRne.cjs"),w=require("./index-Dv3WnY9n.cjs"),$e=require("@react-three/drei"),ve=require("./context-hA0Rb2Xa.cjs"),U=require("./renderPasses-DgxUKn9b.cjs"),ie=require("./index-D-4w34GO.cjs"),Ve=require("./index-S3gqudT6.cjs"),Ye=require("./useXRCapabilities-CZlPUBjF.cjs"),H=require("./cache-DL1Dbz6k.cjs"),K=require("./segmentation-J8GoNBvP.cjs");function Ze(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Qe=Ze(v),V=(e,t,r,s)=>v.MathUtils.damp(e,t,Math.max(0,r),Math.max(0,s)),Je=(e,t,r,s,n=new v.Vector2)=>n.set(V(e.x,t.x,r,s),V(e.y,t.y,r,s)),et=(e,t,r,s,n=new v.Vector3)=>n.set(V(e.x,t.x,r,s),V(e.y,t.y,r,s),V(e.z,t.z,r,s)),tt="rgba(20,40,110,0.88)",rt=24,st=512;function nt({color:e=tt,borderColor:t,borderWidth:r=0,borderRadius:s=rt,resolution:n=st,aspect:a=1,opacity:o=1,name:u,overlay:l=!0,position:d,rotation:E,scale:f,visible:p}){const m=c.useRef(null),h=c.useRef(null),M=c.useMemo(()=>at({width:Math.round(n*Math.max(a,.05)),height:Math.round(n),color:e,borderColor:t,borderWidth:r,borderRadius:s}),[e,t,r,s,n,a]);c.useEffect(()=>()=>{M.dispose()},[M]);const C=c.useRef(null),S=c.useRef(o);return S.current!==o&&(S.current=o,C.current=null,h.current&&(h.current.opacity=o)),c.useEffect(()=>{const T=m.current;if(T)return T.userData.setOpacity=A=>{C.current=A,h.current&&(h.current.opacity=A)},()=>{delete T.userData.setOpacity}},[]),g.jsxs("mesh",{ref:m,name:u,position:d,rotation:E,scale:f,visible:p,children:[g.jsx("planeGeometry",{args:[1,1]}),g.jsx("meshBasicMaterial",{ref:h,map:M,transparent:!0,opacity:o,depthTest:!l,depthWrite:!l})]})}function at(e){const{width:t,height:r,color:s,borderColor:n,borderWidth:a,borderRadius:o}=e,u=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,r):(()=>{const f=document.createElement("canvas");return f.width=t,f.height=r,f})(),l=u.getContext("2d");l.clearRect(0,0,t,r);const d=Math.min(o,Math.min(t,r)/2);l.beginPath(),l.moveTo(d,0),l.lineTo(t-d,0),l.quadraticCurveTo(t,0,t,d),l.lineTo(t,r-d),l.quadraticCurveTo(t,r,t-d,r),l.lineTo(d,r),l.quadraticCurveTo(0,r,0,r-d),l.lineTo(0,d),l.quadraticCurveTo(0,0,d,0),l.closePath(),l.fillStyle=s,l.fill(),n&&a>0&&(l.lineWidth=a,l.strokeStyle=n,l.stroke());const E=new Qe.CanvasTexture(u);return E.needsUpdate=!0,E}const it=({segmentationMask:e,segmentation:t,invert:r=!1,customBackground:s,renderOrder:n=We.RENDER_LAYERS.BACKGROUND})=>{const{camera:a,size:o}=Ne.useThree(),u=le.useXRCameraTexture(),l=le.useXRModelNode(i.XRModel.BACKGROUND_SEGMENTATION),d=t?l==null?void 0:l.backgroundSegmentationMask:void 0,E=c.useRef(!1);c.useEffect(()=>{if(!t){E.current=!1;return}l===null&&!E.current&&(console.warn(`[VideoBackground] segmentation="${t}" set but no matching <Segmentation> component is mounted; rendering unmasked.`),E.current=!0)},[t,l]);const f=t?d:e,p=c.useMemo(()=>{if(!a.isPerspectiveCamera)return[10,10];const m=a,C=(m.position.z||5)- -1,S=m.fov*Math.PI/180,T=2*Math.tan(S/2)*C;return[T*(o.width/o.height),T]},[a,o]);return u?g.jsx("group",{position:[0,0,-1],children:r?g.jsxs(g.Fragment,{children:[g.jsxs("mesh",{position:[0,0,-.01],renderOrder:n-1,children:[g.jsx("planeGeometry",{args:p}),g.jsx("meshBasicMaterial",{map:u,depthTest:!1,depthWrite:!1,toneMapped:!1,side:v.DoubleSide})]}),s&&f&&g.jsxs("mesh",{position:[0,0,0],renderOrder:n,children:[g.jsx("planeGeometry",{args:p}),g.jsx("meshBasicMaterial",{map:typeof s=="string"?void 0:s,color:typeof s=="string"?s:void 0,alphaMap:f,transparent:!1,alphaTest:.5,depthTest:!1,depthWrite:!1,toneMapped:!1,side:v.DoubleSide},"inverted-mask")]})]}):g.jsxs(g.Fragment,{children:[s&&f&&g.jsxs("mesh",{position:[0,0,-.01],renderOrder:n-1,children:[g.jsx("planeGeometry",{args:p}),g.jsx("meshBasicMaterial",{map:typeof s=="string"?void 0:s,color:typeof s=="string"?s:void 0,depthTest:!1,depthWrite:!1,toneMapped:!1,side:v.DoubleSide})]}),g.jsxs("mesh",{position:[0,0,0],renderOrder:n,children:[g.jsx("planeGeometry",{args:p}),g.jsx("meshBasicMaterial",{map:u,alphaMap:f,transparent:!1,alphaTest:f?.5:void 0,depthTest:!1,depthWrite:!1,toneMapped:!1,side:v.DoubleSide},f?"with-mask":"no-mask")]})]})}):null},De=({mask:e,status:t,error:r,invert:s=!1,fallback:n="camera",onStatusChange:a,fit:o="cover",anchors:u=I.FULL_SCREEN_ANCHORS,renderOrder:l=100,visible:d=!0,maskFeather:E=4,maskErode:f=.7,...p})=>{const m=le.useXRCameraTexture();if(c.useEffect(()=>{a==null||a(t,r)},[t,r,a]),!m)return null;const h=t==="ready"&&e;return!h&&!I.shouldDrawFallback(t,n)?null:g.jsx(w.ScreenImage,{...p,source:{kind:"texture",texture:m},fit:o,anchors:u,renderOrder:l,visible:d,maskTexture:h?e:null,maskChannel:"green",maskInvert:s,maskFeather:E,maskErode:f})},ot=({active:e=!0,...t})=>{const{texture:r,status:s,error:n}=I.usePersonMaskTexture(e);return g.jsx(De,{...t,mask:r,status:s,error:n})},ct=({bodyId:e,subject:t,numBodies:r,active:s=!0,...n})=>{const{texture:a,status:o,error:u}=I.useBodyMaskTexture({bodyId:e,subject:t,numBodies:r,active:s});return g.jsx(De,{...n,mask:a,status:o,error:u})},lt=({bodyId:e,subject:t,numBodies:r,...s})=>e!==void 0||t?g.jsx(ct,{...s,bodyId:e,subject:t,numBodies:r}):g.jsx(ot,{...s}),oe=9,ce=16,ut=({children:e})=>{const[t,r]=c.useState({width:0,height:0});return c.useEffect(()=>{const s=()=>{const n=document.documentElement.clientWidth,a=document.documentElement.clientHeight,o=n/a,u=oe/ce;let l,d;o>u?(d=a,l=d*oe/ce):(l=n,d=l*ce/oe),r({width:l,height:d})};return s(),window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),g.jsx("div",{style:{width:"100vw",height:`${window.innerHeight}px`,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#0d0d0d"},children:g.jsx("div",{style:{width:t.width,height:t.height,position:"relative"},children:e})})},dt=({size:e=.25,...t})=>g.jsx("axesHelper",{args:[e],...t}),mt={left:-1,right:1,top:1,bottom:-1},ft=(e,t,r)=>{const s=e%t,n=Math.floor(e/t);return{x:s/t,y:(r-1-n)/r}},pt=({sheet:e,contentAspect:t,renderOrder:r,name:s})=>{const n=$e.useTexture(e.url),a=c.useRef(0),o=c.useRef(-1),u=ve.useScreenRectAspect(),[l,d]=t!=null?w.computeContainScale(u,t):[1,1];return Ne.useFrame((E,f)=>{n.wrapS=v.RepeatWrapping,n.wrapT=v.RepeatWrapping,n.magFilter=v.LinearFilter,n.minFilter=v.LinearFilter,n.generateMipmaps=!1,n.repeat.set(1/e.cols,1/e.rows),a.current+=f;const p=Math.floor(a.current*e.fps)%e.frames;if(p===o.current)return;o.current=p;const{x:m,y:h}=ft(p,e.cols,e.rows);n.offset.set(m,h)}),g.jsxs("mesh",{name:s,renderOrder:r,scale:[l,d,1],children:[g.jsx("planeGeometry",{args:[1,1]}),g.jsx("meshBasicMaterial",{map:n,transparent:!0,toneMapped:!1,depthWrite:!1})]})},ht=({sheet:e,anchors:t=mt,contentAspect:r,renderOrder:s=10,name:n="spriteAnimation"})=>g.jsx(c.Suspense,{fallback:null,children:g.jsx(me.ScreenTransform,{anchors:t,children:g.jsx(pt,{sheet:e,contentAspect:r,renderOrder:s,name:n})})}),j=e=>{switch(e){case"start":return"starting";case"started":case"resume":return"recording";case"pause":return"paused";case"stop":return"stopping";case"complete":return"completed";case"fail":return"error";case"clear":return"idle"}},St=["video/mp4","video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"];function gt(e={}){const{audio:t=!1,mimeType:r,bitsPerSecond:s,onData:n,onStop:a,onRecordingStart:o,onRecordingPause:u,onRecordingResume:l,onRecordingStop:d,onRecordingComplete:E,onError:f,passThroughStream:p}=e,m=c.useRef(null),h=c.useRef(null),M=c.useRef([]),[C,S]=c.useState("idle"),[T,A]=c.useState(null),[W,b]=c.useState(null),k=c.useCallback(()=>{var _;const R=[r,...St].filter(Boolean);for(const y of R)if((_=MediaRecorder.isTypeSupported)!=null&&_.call(MediaRecorder,y))return y},[r]),X=c.useCallback(async R=>{const _=new MediaStream;if(R.getTracks().forEach(y=>_.addTrack(y)),t){let y;if(t instanceof MediaStream)y=t;else{const F=typeof t=="object"?{audio:t}:{audio:!0,video:!1};y=await navigator.mediaDevices.getUserMedia(F)}y.getAudioTracks().forEach(F=>_.addTrack(F))}if(!_.getTracks().length)throw new Error("No tracks available in combined stream.");return h.current=_,_},[t]),te=c.useCallback(async(R,_)=>{S(j("start")),b(null),A(null);try{let y;if(p)y=p,h.current=y;else{if(!R)throw new Error("start(stream) requires a MediaStream.");y=await X(R)}const F=k(),$={};F&&($.mimeType=F),s&&($.bitsPerSecond=s);const z=new MediaRecorder(y,$);z.ondataavailable=L=>{var Z;((Z=L.data)==null?void 0:Z.size)>0&&(M.current.push(L.data),n==null||n(L.data))},z.onstop=()=>{const L=new Blob(M.current,{type:F??"video/webm"});A(L),a==null||a(L),E==null||E(L),M.current=[],S(j("complete"))},m.current=z,z.start(_),S(j("started")),o==null||o()}catch(y){const F=y instanceof Error?y:new Error(String(y));console.error("start(stream) failed",F),b(F),S(j("fail")),f==null||f(F)}},[X,k,s,n,a,E,o,f,p]),re=c.useCallback(()=>{const R=m.current;!R||R.state==="inactive"||(S(j("stop")),R.stop(),d==null||d())},[d]),se=c.useCallback(()=>{const R=m.current;(R==null?void 0:R.state)==="recording"&&(R.pause(),S(j("pause")),u==null||u())},[u]),ne=c.useCallback(()=>{const R=m.current;(R==null?void 0:R.state)==="paused"&&(R.resume(),S(j("resume")),l==null||l())},[l]),Y=c.useCallback(()=>{var R;try{m.current&&(m.current.onstop=null,m.current.state!=="inactive"&&m.current.stop()),m.current=null,(R=h.current)==null||R.getTracks().forEach(_=>_.stop()),h.current=null,A(null),S(j("clear")),M.current=[],b(null)}catch(_){console.error("clear failed",_)}},[]);return c.useEffect(()=>()=>Y(),[]),{status:C,start:te,stop:re,pause:se,resume:ne,clear:Y,isRecording:C==="recording"||C==="paused",isPaused:C==="paused",recordedBlob:T,error:W,getActiveStream:()=>h.current}}const Et=async(e,t={})=>{var r,s,n;(r=t.onCaptureStart)==null||r.call(t),await Promise.resolve();try{const a=e();return(s=t.onCaptureComplete)==null||s.call(t,a),a}catch(a){const o=a instanceof Error?a:new Error(String(a));throw(n=t.onError)==null||n.call(t,o),o}},Tt=(e={})=>{const{session:t}=i.useXRContext(),{captureFrame:r=t.captureFrame,onCaptureStart:s,onCaptureComplete:n,onError:a}=e,[o,u]=c.useState("idle"),[l,d]=c.useState(null),[E,f]=c.useState(null),p=c.useCallback(async()=>{u("capturing"),d(null),f(null);try{const h=await Et(r,{onCaptureStart:s,onCaptureComplete:n,onError:a});return d(h),u("completed"),h}catch(h){const M=h instanceof Error?h:new Error(String(h));return f(M),u("error"),null}},[r,s,n,a]),m=c.useCallback(()=>{u("idle"),d(null),f(null)},[]);return{status:o,capturePhoto:p,clear:m,dataUrl:l,error:E}},Rt=(e,t)=>{const r=e.split(","),s=r[0].match(/:(.*?);/),n=s?s[1]:"application/octet-stream",a=atob(r[r.length-1]);let o=a.length;const u=new Uint8Array(o);for(;o--;)u[o]=a.charCodeAt(o);return new File([u],t,{type:n})},Mt=4,yt=50,Ct=5e3,ae=e=>Math.min(1,Math.max(0,e)),_e=e=>new Promise(t=>{if(e.readyState>=4){t();return}let r=!1;const s=()=>{r||(r=!0,t())};e.addEventListener("canplaythrough",s,{once:!0}),e.addEventListener("error",s,{once:!0}),setTimeout(s,Ct)}),Fe=(e,t)=>{const r=document.createElement("audio");return r.src=e,r.loop=t,r.preload="auto",r.setAttribute("playsinline",""),r.setAttribute("webkit-playsinline",""),r.load(),r},At=e=>{e.muted=!0,e.play().then(()=>{e.pause(),e.currentTime=0,e.muted=!1}).catch(()=>{e.muted=!1})};class Ue{constructor(t={}){P(this,"sfxPoolSize");P(this,"coalesceMs");P(this,"muted",!0);P(this,"listeners",new Set);P(this,"music",null);P(this,"musicUrl",null);P(this,"musicReady",null);P(this,"musicWanted",null);P(this,"pools",new Map);P(this,"lastPlayed",new Map);P(this,"ready",new Map);this.sfxPoolSize=t.sfxPoolSize??Mt,this.coalesceMs=t.coalesceMs??yt}prefetchMusic(t,r=.4){const s=ae(r);if(this.musicWanted={url:t,volume:s},this.musicUrl===t&&this.musicReady)return this.music&&(this.music.volume=s),this.musicReady;this.music&&(this.music.pause(),this.music.currentTime=0,this.music.removeAttribute("src"),this.music.load()),this.music=Fe(t,!0),this.musicUrl=t,this.music.volume=s;const n=_e(this.music);return this.musicReady=n,n}registerSound(t,r=1){const s=this.ready.get(t);if(s)return s;const n=ae(r),a=[];for(let u=0;u<this.sfxPoolSize;u+=1){const l=Fe(t,!1);l.volume=n,l.addEventListener("ended",()=>{l.currentTime=0}),a.push(l)}this.pools.set(t,{els:a,next:0,volume:n});const o=_e(a[0]);return this.ready.set(t,o),o}onMuteChange(t){return this.listeners.add(t),t(this.muted),()=>this.listeners.delete(t)}isMuted(){return this.muted}setMuted(t){t!==this.muted&&(this.muted=t,this.muted||this.pools.forEach(r=>r.els.forEach(At)),this.applyMusic(),this.listeners.forEach(r=>r(this.muted)))}toggleMuted(){this.setMuted(!this.muted)}playOneShot(t,r){if(this.muted)return;const s=this.pools.get(t);if(!s)return;const n=performance.now();if(n-(this.lastPlayed.get(t)??-1/0)<this.coalesceMs)return;this.lastPlayed.set(t,n);const a=s.els.length;let o;for(let u=0;u<a;u+=1){const l=s.els[(s.next+u)%a];if(l.paused){o=l,s.next=(s.next+u+1)%a;break}}o||(o=s.els[s.next],s.next=(s.next+1)%a),o.muted=!1,o.volume=ae(r??s.volume),o.currentTime!==0&&(o.currentTime=0),o.play().catch(()=>{})}startMusic(t,r=.4){const s=ae(r);this.musicUrl!==t&&this.prefetchMusic(t,s),this.musicWanted={url:t,volume:s},this.applyMusic()}stopMusic(){this.musicWanted=null,this.music&&(this.music.pause(),this.music.currentTime=0)}applyMusic(){!this.music||!this.musicWanted||(this.music.volume=this.musicWanted.volume,!this.muted&&this.music.paused&&this.music.play().catch(()=>{}),this.muted&&!this.music.paused&&this.music.pause())}}const bt=(e,t,r)=>e==="infinite"||e==="loop"&&t<Math.max(1,Math.floor(r))?"replay":"ended",_t=(e,t,r)=>e&&t!==r,Ft=e=>Math.min(100,Math.max(0,e))/100,xt=c.forwardRef(function({src:t,playMode:r="once",loopCount:s=1,autoplay:n=!1,muted:a=!1,volume:o=100,preload:u="auto",onReady:l,onPlay:d,onPause:E,onEnded:f,onError:p},m){const h=c.useRef(null),M=c.useRef(0),C=c.useRef(null),S=c.useCallback(async()=>{const b=h.current;if(b)try{await b.play()}catch(k){const X=k instanceof Error?k:new Error(String(k));throw p==null||p(X),X}},[p]),T=c.useCallback(()=>{var b;return(b=h.current)==null?void 0:b.pause()},[]),A=c.useCallback(()=>{const b=h.current;b&&(b.pause(),b.currentTime=0,M.current=0)},[]);c.useImperativeHandle(m,()=>({play:S,pause:T,stop:A,get current(){return h.current}}),[T,S,A]),c.useEffect(()=>{M.current=0,C.current=null},[t]),c.useEffect(()=>{h.current&&(h.current.volume=Ft(o))},[o]),c.useEffect(()=>{_t(n,C.current,t)&&(C.current=t,S().catch(()=>{}))},[n,t]);const W=c.useCallback(()=>{M.current+=1;const b=Math.max(1,Math.floor(s));if(bt(r,M.current,b)==="replay"){const k=h.current;k&&(k.currentTime=0,S().catch(()=>{}));return}M.current=0,f==null||f()},[s,f,S,r]);return g.jsx("audio",{ref:h,src:t,preload:u,autoPlay:!1,muted:a,loop:!1,playsInline:!0,style:{display:"none"},onCanPlayThrough:l,onPlay:d,onPause:E,onEnded:W,onError:()=>p==null?void 0:p(new Error(`Unable to load audio: ${t}`))})}),D=new Ue,kt=(e,t)=>D.prefetchMusic(e,t),Pt=(e,t)=>D.registerSound(e,t),Nt=(e,t)=>D.startMusic(e,t),vt=()=>D.stopMusic(),Dt=(e,t)=>D.playOneShot(e,t),Ut=e=>D.setMuted(e),wt=()=>D.toggleMuted(),Lt=()=>D.isMuted(),It=e=>D.onMuteChange(e),Ot=()=>{const[e,t]=c.useState(D.isMuted());return c.useEffect(()=>D.onMuteChange(t),[]),e},we=(e={})=>{const{auto:t=!1}=e,r=c.useRef(e.env??i.defaultCameraEnvironment()),s=c.useRef(e.constraints);s.current=e.constraints;const[n,a]=c.useState("unknown"),[o,u]=c.useState(null),l=c.useRef(0),d=c.useCallback(async()=>{const f=++l.current,p=await i.queryCameraPermission(r.current);if(f!==l.current)return n;const m=p.state==="unknown"?"unknown":p.state;return a(h=>h==="requesting"?h:m),m!=="blocked"&&u(null),m},[]),E=c.useCallback(async f=>{const p=++l.current;a("requesting"),u(null);const m=await i.requestCameraAccess({constraints:(f==null?void 0:f.constraints)??s.current,keepStream:!1},r.current);return p!==l.current||(a(m.state),u(m.reason)),m.state},[]);return c.useEffect(()=>{let f=()=>{},p=!0;return t?E():d(),i.subscribeCameraPermission(m=>{p&&(a(h=>h==="requesting"?h:m.state==="unknown"?"unknown":m.state),m.state!=="blocked"&&u(null))},r.current).then(m=>{p?f=m:m()}),()=>{p=!1,l.current+=1,f()}},[t,d,E]),c.useMemo(()=>({state:n,reason:o,canPrompt:i.canPromptForCamera(n),usable:n==="granted",request:E,refresh:d}),[n,o,E,d])},Gt={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",minHeight:160,padding:24,textAlign:"center",background:"#111827",color:"#f9fafb",fontFamily:"system-ui, sans-serif"},qt={font:"inherit",padding:"10px 18px",borderRadius:8,border:"1px solid rgba(255,255,255,0.3)",background:"#2563eb",color:"#fff",cursor:"pointer"},Xt=({children:e,fallback:t,auto:r=!1,constraints:s,requestLabel:n="Allow camera"})=>{const a=we({auto:r,constraints:s});if(a.usable)return g.jsx(g.Fragment,{children:e});if(t)return g.jsx(g.Fragment,{children:t(a)});const{state:o,reason:u,canPrompt:l,request:d}=a;return g.jsxs("div",{style:Gt,role:"region","aria-label":"Camera access",children:[g.jsx("p",{"aria-live":"polite",style:{margin:0},children:(u==null?void 0:u.message)??i.CAMERA_PERMISSION_MESSAGES[o]}),g.jsx("button",{type:"button",onClick:()=>void d(),disabled:!l||o==="requesting","aria-disabled":!l||o==="requesting",style:{...qt,opacity:l&&o!=="requesting"?1:.5},children:o==="requesting"?"Waiting…":o==="denied"?"Try again":n})]})},jt=()=>{var e;return{enumerateDevices:typeof navigator<"u"&&((e=navigator.mediaDevices)!=null&&e.enumerateDevices)?()=>navigator.mediaDevices.enumerateDevices():void 0}},Bt=/\b(back|rear|environment|world)\b/i,Kt=/\b(front|user|facetime|selfie)\b/i,zt=e=>Bt.test(e)?"environment":Kt.test(e)?"user":null,Ht=async(e=jt())=>{if(!e.enumerateDevices)return[];try{return(await e.enumerateDevices()).filter(r=>r.kind==="videoinput").map(r=>({deviceId:r.deviceId,label:r.label,facing:zt(r.label)}))}catch{return[]}},Wt=(e,t)=>e.find(r=>r.facing===t)??null,Le=c.createContext(null),$t=({cache:e,disposeUnreferencedOnUnmount:t=!0,children:r})=>{const s=e??H.getDefaultAssetCache();return c.useEffect(()=>()=>{t&&s.disposeUnreferenced()},[s,t]),g.jsx(Le.Provider,{value:s,children:r})},fe=()=>c.useContext(Le)??H.getDefaultAssetCache(),Vt=(e,t={})=>{const{enabled:r=!0}=t,s=fe(),n=c.useId(),a=(e==null?void 0:e.key)??null,[o,u]=c.useState({value:null,status:"idle",error:null});return c.useEffect(()=>{if(!e||!r){u({value:null,status:"idle",error:null});return}let l=!0;const d=s.get(e.key);return u({value:d??null,status:d?"ready":"loading",error:null}),s.acquire(e,n).then(E=>{l&&u({value:E,status:"ready",error:null})}).catch(E=>{l&&u({value:null,status:"error",error:E})}),()=>{l=!1,s.release(e.key,n)}},[s,a,r,n]),o},Yt=e=>{const t=fe(),r=e??t;return c.useSyncExternalStore(s=>r.subscribe(s),()=>r.getStats(),()=>r.getStats())},J=1,pe=Object.freeze({version:J,trackers:{face:{enabled:!0,numFaces:1,targetFps:null,holdMs:250,predictMs:0,smoothing:0},hand:{enabled:!1,targetFps:null},gesture:{enabled:!1,targetFps:null},body:{enabled:!1,targetFps:null},holistic:{enabled:!1,targetFps:null,hands:"both",holdMs:250,predictMs:0,analysisMaxDimension:768,outputFaceBlendshapes:!0,confidence:.5,delegate:"auto"},segmentation:{enabled:!1,quality:"low"},semanticSegmentation:{enabled:!1,preset:"multiclass",quality:"medium"}},perf:{targetFps:24,camRes:720,cameraZoom:1.2,analysisScale:1},lifecycle:{pauseWhenHidden:!1},quality:{},camera:{facingMode:"user",deviceId:null,mirrored:"auto"},fallbacks:{onUnsupported:"degrade",delegate:"auto"},assets:{holisticModelUrl:null,semanticSegmentationModelUrl:null},updatedAt:0}),N=(e,t,r,s,n,a)=>{if(e===void 0)return t;if(typeof e!="number"||!Number.isFinite(e))return a(`${n}: not a number, kept ${t}`),t;const o=Math.min(s,Math.max(r,e));return o!==e&&a(`${n}: ${e} clamped to ${o}`),o},Q=(e,t,r,s)=>e===void 0?t:e===null?null:typeof e!="number"||!Number.isFinite(e)||e<=0?(s(`${r}: invalid fps, kept ${t}`),t):(e>120&&s(`${r}: ${e} clamped to 120`),Math.min(120,e)),Zt=["tiers","budget","initialTier","minTier","maxTier","adaptive","historySize"],xe=e=>{const t={};for(const r of Zt)e[r]!==void 0&&(t[r]=e[r]);return t},O=(e,t,r,s)=>e===void 0?t:typeof e!="boolean"?(s(`${r}: not a boolean, kept ${t}`),t):e,B=(e,t,r,s,n)=>e===void 0?r:t.includes(e)?e:(n(`${s}: "${String(e)}" is not one of ${t.join(" | ")}, kept ${r}`),r),ke=(e,t,r,s)=>e===void 0?t:e===null?null:typeof e!="string"||!/^https?:\/\//.test(e)?(s(`${r}: not an http(s) URL, kept ${t===null?"the SDK default":t}`),t):e,q=(e={},t=pe,r=[])=>{var u,l,d,E,f,p,m,h,M,C,S,T,A,W,b,k,X,te,re,se,ne,Y,R,_,y,F,$,z,L,Z,Ee,Te,Re,Me,ye,Ce,Ae,be;const s=Ke=>r.push(Ke),n=e.trackers??{},a=t.trackers,o=e.quality===void 0?t.quality===!1?!1:xe(t.quality):e.quality===!1?!1:typeof e.quality=="object"&&e.quality!==null?xe(e.quality):(s("quality: must be an object or false, kept base"),t.quality);return{version:J,trackers:{face:{enabled:O((u=n.face)==null?void 0:u.enabled,a.face.enabled,"trackers.face.enabled",s),numFaces:Math.round(N((l=n.face)==null?void 0:l.numFaces,a.face.numFaces,1,10,"trackers.face.numFaces",s)),targetFps:Q((d=n.face)==null?void 0:d.targetFps,a.face.targetFps,"trackers.face.targetFps",s),holdMs:N((E=n.face)==null?void 0:E.holdMs,a.face.holdMs,0,5e3,"trackers.face.holdMs",s),predictMs:N((f=n.face)==null?void 0:f.predictMs,a.face.predictMs,0,1e3,"trackers.face.predictMs",s),smoothing:N((p=n.face)==null?void 0:p.smoothing,a.face.smoothing,0,100,"trackers.face.smoothing",s)},hand:{enabled:O((m=n.hand)==null?void 0:m.enabled,a.hand.enabled,"trackers.hand.enabled",s),targetFps:Q((h=n.hand)==null?void 0:h.targetFps,a.hand.targetFps,"trackers.hand.targetFps",s)},gesture:{enabled:O((M=n.gesture)==null?void 0:M.enabled,a.gesture.enabled,"trackers.gesture.enabled",s),targetFps:Q((C=n.gesture)==null?void 0:C.targetFps,a.gesture.targetFps,"trackers.gesture.targetFps",s)},body:{enabled:O((S=n.body)==null?void 0:S.enabled,a.body.enabled,"trackers.body.enabled",s),targetFps:Q((T=n.body)==null?void 0:T.targetFps,a.body.targetFps,"trackers.body.targetFps",s)},holistic:{enabled:O((A=n.holistic)==null?void 0:A.enabled,a.holistic.enabled,"trackers.holistic.enabled",s),targetFps:Q((W=n.holistic)==null?void 0:W.targetFps,a.holistic.targetFps,"trackers.holistic.targetFps",s),hands:B((b=n.holistic)==null?void 0:b.hands,["both","left","right","none"],a.holistic.hands,"trackers.holistic.hands",s),holdMs:N((k=n.holistic)==null?void 0:k.holdMs,a.holistic.holdMs,0,5e3,"trackers.holistic.holdMs",s),predictMs:N((X=n.holistic)==null?void 0:X.predictMs,a.holistic.predictMs,0,1e3,"trackers.holistic.predictMs",s),analysisMaxDimension:Math.round(N((te=n.holistic)==null?void 0:te.analysisMaxDimension,a.holistic.analysisMaxDimension,128,2048,"trackers.holistic.analysisMaxDimension",s)),outputFaceBlendshapes:O((re=n.holistic)==null?void 0:re.outputFaceBlendshapes,a.holistic.outputFaceBlendshapes,"trackers.holistic.outputFaceBlendshapes",s),confidence:N((se=n.holistic)==null?void 0:se.confidence,a.holistic.confidence,0,1,"trackers.holistic.confidence",s),delegate:B((ne=n.holistic)==null?void 0:ne.delegate,["auto","GPU","CPU"],a.holistic.delegate,"trackers.holistic.delegate",s)},segmentation:{enabled:O((Y=n.segmentation)==null?void 0:Y.enabled,a.segmentation.enabled,"trackers.segmentation.enabled",s),quality:B((R=n.segmentation)==null?void 0:R.quality,["low","medium","high"],a.segmentation.quality,"trackers.segmentation.quality",s)},semanticSegmentation:{enabled:O((_=n.semanticSegmentation)==null?void 0:_.enabled,a.semanticSegmentation.enabled,"trackers.semanticSegmentation.enabled",s),preset:B((y=n.semanticSegmentation)==null?void 0:y.preset,K.SEMANTIC_SEGMENTATION_PRESETS,a.semanticSegmentation.preset,"trackers.semanticSegmentation.preset",s),quality:B((F=n.semanticSegmentation)==null?void 0:F.quality,["low","medium","high"],a.semanticSegmentation.quality,"trackers.semanticSegmentation.quality",s)}},perf:{targetFps:N(($=e.perf)==null?void 0:$.targetFps,t.perf.targetFps,0,120,"perf.targetFps",s),camRes:Math.round(N((z=e.perf)==null?void 0:z.camRes,t.perf.camRes,160,3840,"perf.camRes",s)),cameraZoom:N((L=e.perf)==null?void 0:L.cameraZoom,t.perf.cameraZoom,1,3,"perf.cameraZoom",s),analysisScale:N((Z=e.perf)==null?void 0:Z.analysisScale,t.perf.analysisScale,.25,1,"perf.analysisScale",s)},lifecycle:{pauseWhenHidden:O((Ee=e.lifecycle)==null?void 0:Ee.pauseWhenHidden,t.lifecycle.pauseWhenHidden,"lifecycle.pauseWhenHidden",s)},quality:o,camera:{facingMode:B((Te=e.camera)==null?void 0:Te.facingMode,["user","environment"],t.camera.facingMode,"camera.facingMode",s),deviceId:((Re=e.camera)==null?void 0:Re.deviceId)===void 0?t.camera.deviceId:typeof e.camera.deviceId=="string"||e.camera.deviceId===null?e.camera.deviceId:(s("camera.deviceId: not a string, kept base"),t.camera.deviceId),mirrored:((Me=e.camera)==null?void 0:Me.mirrored)===void 0?t.camera.mirrored:e.camera.mirrored==="auto"||typeof e.camera.mirrored=="boolean"?e.camera.mirrored:(s('camera.mirrored: must be boolean or "auto", kept base'),t.camera.mirrored)},fallbacks:{onUnsupported:B((ye=e.fallbacks)==null?void 0:ye.onUnsupported,["block","degrade"],t.fallbacks.onUnsupported,"fallbacks.onUnsupported",s),delegate:B((Ce=e.fallbacks)==null?void 0:Ce.delegate,["auto","GPU","CPU"],t.fallbacks.delegate,"fallbacks.delegate",s)},assets:{holisticModelUrl:ke((Ae=e.assets)==null?void 0:Ae.holisticModelUrl,t.assets.holisticModelUrl,"assets.holisticModelUrl",s),semanticSegmentationModelUrl:ke((be=e.assets)==null?void 0:be.semanticSegmentationModelUrl,t.assets.semanticSegmentationModelUrl,"assets.semanticSegmentationModelUrl",s)},updatedAt:typeof e.updatedAt=="number"&&Number.isFinite(e.updatedAt)?e.updatedAt:t.updatedAt}},ue=(e,t,r=Date.now())=>q({...t,updatedAt:r},e),he=e=>JSON.stringify(q({},e)),Se=e=>{const t=[];let r=e;if(typeof e=="string")try{r=JSON.parse(e)}catch{return{config:q(),migrated:!0,warnings:["not valid JSON; defaults used"]}}if(!r||typeof r!="object")return{config:q(),migrated:!0,warnings:["not an object; defaults used"]};const s=r,n=s.version!==J;return n&&t.push(`migrated from version ${String(s.version??"none")} to ${J}`),{config:q(s,pe,t),migrated:n,warnings:t}},Qt=["face","hand","gesture","body","holistic","segmentation","semanticSegmentation"],Ie=e=>({perf:{targetFps:e.perf.targetFps>0?e.perf.targetFps:void 0,camRes:e.perf.camRes,cameraZoom:e.perf.cameraZoom,analysisScale:e.perf.analysisScale},lifecycle:{pauseWhenHidden:e.lifecycle.pauseWhenHidden},quality:e.quality}),Oe=e=>({facingMode:e.camera.facingMode,...e.camera.deviceId?{deviceId:e.camera.deviceId}:{},...e.camera.mirrored==="auto"?{}:{mirrored:e.camera.mirrored}}),G=e=>e===null?{}:{targetFps:e},Ge=(e,t)=>{const r=e.trackers;return{face:{numFaces:r.face.numFaces,...G(r.face.targetFps),holdMs:r.face.holdMs,predictMs:r.face.predictMs,active:r.face.enabled},hand:{...G(r.hand.targetFps),active:r.hand.enabled},gesture:{...G(r.gesture.targetFps),active:r.gesture.enabled},body:{active:r.body.enabled},holistic:{...G(r.holistic.targetFps),hands:r.holistic.hands,holdMs:r.holistic.holdMs,predictMs:r.holistic.predictMs,analysisMaxDimension:r.holistic.analysisMaxDimension,outputFaceBlendshapes:r.holistic.outputFaceBlendshapes,delegate:r.holistic.delegate==="auto"?e.fallbacks.delegate:r.holistic.delegate,...e.assets.holisticModelUrl?{modelUrl:e.assets.holisticModelUrl}:{},active:r.holistic.enabled},segmentation:{quality:r.segmentation.quality,active:r.segmentation.enabled},semanticSegmentation:{preset:r.semanticSegmentation.preset,quality:r.semanticSegmentation.quality,...e.assets.semanticSegmentationModelUrl?{modelUrl:e.assets.semanticSegmentationModelUrl}:{},active:r.semanticSegmentation.enabled}}[t]},qe=(e,t)=>{const r=e.trackers;switch(t){case i.XRModel.FACE_TRACKER:return{numFaces:r.face.numFaces,...G(r.face.targetFps)};case i.XRModel.HAND_TRACKER:return{...G(r.hand.targetFps)};case i.XRModel.GESTURE_TRACKER:return{...G(r.gesture.targetFps)};case i.XRModel.BODY_TRACKER:return{...G(r.body.targetFps)};case i.XRModel.HOLISTIC_TRACKER:{const s=r.holistic;return{...G(s.targetFps),hands:s.hands,holdMs:s.holdMs,predictMs:s.predictMs,analysisMaxDimension:s.analysisMaxDimension,outputFaceBlendshapes:s.outputFaceBlendshapes,minFaceDetectionConfidence:s.confidence,minFacePresenceConfidence:s.confidence,minPoseDetectionConfidence:s.confidence,minPosePresenceConfidence:s.confidence,minHandLandmarksConfidence:s.confidence,delegate:s.delegate==="auto"?e.fallbacks.delegate:s.delegate,...e.assets.holisticModelUrl?{modelUrl:e.assets.holisticModelUrl}:{}}}case i.XRModel.BACKGROUND_SEGMENTATION:return{quality:r.segmentation.quality};case i.XRModel.SEMANTIC_SEGMENTATION:return{preset:r.semanticSegmentation.preset,quality:r.semanticSegmentation.quality,...e.assets.semanticSegmentationModelUrl?{modelUrl:e.assets.semanticSegmentationModelUrl}:{}};default:return{}}},Xe=e=>{const t=e.trackers,r=[];return t.face.enabled&&r.push(i.XRModel.FACE_TRACKER),t.hand.enabled&&r.push(i.XRModel.HAND_TRACKER),t.gesture.enabled&&r.push(i.XRModel.GESTURE_TRACKER),t.body.enabled&&r.push(i.XRModel.BODY_TRACKER),t.holistic.enabled&&r.push(i.XRModel.HOLISTIC_TRACKER),t.segmentation.enabled&&r.push(i.XRModel.BACKGROUND_SEGMENTATION),t.semanticSegmentation.enabled&&r.push(i.XRModel.SEMANTIC_SEGMENTATION),r},ee="vincentt.xr.tracking-config",ge=()=>{try{return typeof localStorage<"u"?localStorage:null}catch{return null}},je=(e=ee,t=ge())=>{if(!t)return null;try{const r=t.getItem(e);return r?Se(r):null}catch{return null}},de=(e,t=ee,r=ge())=>{if(!r)return!1;try{return r.setItem(t,he(e)),!0}catch{return!1}},Be=(e=ee,t=ge())=>{if(t)try{t.removeItem(e)}catch{}},Jt=(e={})=>{const{storageKey:t=ee,persist:r=!0}=e,s=e.storage,n=c.useRef(e.initial),a=c.useMemo(()=>q(n.current??{}),[]),[o,u]=c.useState(a),[l,d]=c.useState([]),[E,f]=c.useState(!r),p=c.useRef(o);p.current=o,c.useEffect(()=>{if(!r){f(!0);return}const S=je(t,s);if(S){const T=q(S.config,a);p.current=T,u(T),d(S.warnings),S.migrated&&de(T,t,s)}f(!0)},[r,t,s,a]);const m=c.useCallback((S,T)=>(p.current=S,u(S),d(T),r&&de(S,t,s),S),[r,t,s]),h=c.useCallback(S=>{const T=[],A=q({...S,updatedAt:Date.now()},p.current,T);return m(A,T)},[m]),M=c.useCallback(()=>{const S=ue(a,{},0);return p.current=S,u(S),d([]),r&&Be(t,s),S},[a,r,t,s]),C=c.useCallback(S=>{const T=Se(S);return T.warnings.some(A=>A.startsWith("not valid JSON")||A.startsWith("not an object"))?(d([`import: ${T.warnings[0]}; config unchanged`]),p.current):m(ue(T.config,{},Date.now()),T.warnings)},[m]);return c.useMemo(()=>({config:o,hydrated:E,warnings:l,update:h,reset:M,importJson:C,json:he(o),providerProps:Ie(o),cameraRequest:Oe(o),trackerProps:S=>Ge(o,S),modelOptions:S=>qe(o,S),enabledModels:Xe(o)}),[o,E,l,h,M,C])};exports.CAMERA_PERMISSION_MESSAGES=i.CAMERA_PERMISSION_MESSAGES;exports.DEFAULT_PERFORMANCE_BUDGET=i.DEFAULT_PERFORMANCE_BUDGET;exports.DEFAULT_PIXEL_SNAP_INCREMENT=i.DEFAULT_PIXEL_SNAP_INCREMENT;exports.DEFAULT_QUALITY_TIERS=i.DEFAULT_QUALITY_TIERS;exports.DEFAULT_REFERENCE_PIXELS_PER_UNIT=i.DEFAULT_REFERENCE_PIXELS_PER_UNIT;exports.DEFAULT_SCREEN_TRANSFORM_2D=i.DEFAULT_SCREEN_TRANSFORM_2D;exports.DEFAULT_SCREEN_TRANSFORM_ROOT=i.DEFAULT_SCREEN_TRANSFORM_ROOT;exports.XRMediaSource=i.XRMediaSource;exports.XRModel=i.XRModel;exports.XRProvider=i.XRProvider;exports.XRQualityController=i.XRQualityController;exports.XR_FALLBACK_MESSAGES=i.XR_FALLBACK_MESSAGES;exports.XR_MODEL_ASSET_URLS=i.XR_MODEL_ASSET_URLS;exports.canPromptForCamera=i.canPromptForCamera;exports.clientToScreenPixels=i.clientToScreenPixels;exports.computeFeedCrop=i.computeFeedCrop;exports.computeFitLayout=i.computeFitLayout;exports.createFallbackReason=i.createFallbackReason;exports.detectXRCapabilities=i.detectXRCapabilities;exports.feedSidedName=i.feedSidedName;exports.feedToScreenPixels=i.feedToScreenPixels;exports.feedToSource=i.feedToSource;exports.feedToTracker=i.feedToTracker;exports.feedToViewport=i.feedToViewport;exports.feedToWorld=i.feedToWorld;exports.isFeedPointInSource=i.isFeedPointInSource;exports.isMirroredSourceKind=i.isMirroredSourceKind;exports.mediaToScreenPixels=i.mediaToScreenPixels;exports.mergeScreenTransform2D=i.mergeScreenTransform2D;exports.mirrorFeedX=i.mirrorFeedX;exports.normalizedToScreenPixels=i.normalizedToScreenPixels;exports.orientSourcePoint=i.orientSourcePoint;exports.orientedSize=i.orientedSize;exports.otherSide=i.otherSide;exports.personLeftSign=i.personLeftSign;exports.personSide=i.personSide;exports.queryCameraPermission=i.queryCameraPermission;exports.requestCameraAccess=i.requestCameraAccess;exports.resolveModelAssetUrl=i.resolveModelAssetUrl;exports.resolveQualityConfig=i.resolveQualityConfig;exports.resolveScreenTransform2D=i.resolveScreenTransform2D;exports.resolveTrackerSupport=i.resolveTrackerSupport;exports.screenPixelsToClient=i.screenPixelsToClient;exports.screenPixelsToFeed=i.screenPixelsToFeed;exports.screenPixelsToMedia=i.screenPixelsToMedia;exports.screenPixelsToNormalized=i.screenPixelsToNormalized;exports.screenPixelsToScreenSpace=i.screenPixelsToScreenSpace;exports.screenPixelsToUnits=i.screenPixelsToUnits;exports.screenPointToRay=i.screenPointToRay;exports.screenSpaceToScreenPixels=i.screenSpaceToScreenPixels;exports.screenUnitsToPixels=i.screenUnitsToPixels;exports.sourceToFeed=i.sourceToFeed;exports.subscribeCameraPermission=i.subscribeCameraPermission;exports.swapSidedName=i.swapSidedName;exports.trackerPointToScreenPixels=i.trackerPointToScreenPixels;exports.trackerToFeed=i.trackerToFeed;exports.trackerToWorld=i.trackerToWorld;exports.viewportToFeed=i.viewportToFeed;exports.worldToFeed=i.worldToFeed;exports.worldToScreenPixels=i.worldToScreenPixels;exports.worldToTracker=i.worldToTracker;exports.ScreenTransform=me.ScreenTransform;exports.XRScene=me.XRScene;exports.ScreenSpaceUI=Pe.ScreenSpaceUI;exports.TextLabel=Pe.TextLabel;exports.DEFAULT_SCREEN_GLASS=x.DEFAULT_SCREEN_GLASS;exports.DEFAULT_SCREEN_IMAGE_SCENE_SETTINGS=x.DEFAULT_SCREEN_IMAGE_SCENE_SETTINGS;exports.DEFAULT_SCREEN_IMAGE_SETTINGS=x.DEFAULT_SCREEN_IMAGE_SETTINGS;exports.DEFAULT_SCREEN_SHAPE_SETTINGS=x.DEFAULT_SCREEN_SHAPE_SETTINGS;exports.DEFAULT_SCREEN_TEXT_SCENE_SETTINGS=x.DEFAULT_SCREEN_TEXT_SCENE_SETTINGS;exports.DEFAULT_SCREEN_TEXT_SHADOW_LAYER=x.DEFAULT_SCREEN_TEXT_SHADOW_LAYER;exports.PinToMesh=x.PinToMesh;exports.ScreenGlassMaterial=x.ScreenGlassMaterial;exports.ScreenShape=x.ScreenShape;exports.mapScreenImageSettingsToProps=x.mapScreenImageSettingsToProps;exports.mapScreenTextInnerShadowToProps=x.mapScreenTextInnerShadowToProps;exports.mapScreenTextSettingsToProps=x.mapScreenTextSettingsToProps;exports.mergeScreenShapeSettings=x.mergeScreenShapeSettings;exports.normalizeScreenGlass=x.normalizeScreenGlass;exports.FULL_SCREEN_ANCHORS=I.FULL_SCREEN_ANCHORS;exports.drawNormalizedCrop=I.drawNormalizedCrop;exports.resolveNormalizedCrop=I.resolveNormalizedCrop;exports.resolvePersonCutoutStatus=I.resolvePersonCutoutStatus;exports.shouldDrawFallback=I.shouldDrawFallback;exports.usePersonMaskTexture=I.usePersonMaskTexture;exports.LightObject=w.LightObject;exports.LookAt=w.LookAt;exports.RenderGroupLayer=w.RenderGroupLayer;exports.SCREEN_IMAGE_MASK_CHANNELS=w.SCREEN_IMAGE_MASK_CHANNELS;exports.SceneObjectRenderer=w.SceneObjectRenderer;exports.ScreenImage=w.ScreenImage;exports.ScreenText=w.ScreenText;exports.SequentialRenderPasses=w.SequentialRenderPasses;exports.computeContainScale=w.computeContainScale;exports.useScreenRectAspect=ve.useScreenRectAspect;exports.DEFAULT_MATERIAL_FILL=U.DEFAULT_MATERIAL_FILL;exports.DEFAULT_SCREEN_GRADIENT=U.DEFAULT_SCREEN_GRADIENT;exports.DEFAULT_TRANSFORM_3D=U.DEFAULT_TRANSFORM_3D;exports.EXTERNAL_BACKGROUND_RENDER_LAYER=U.EXTERNAL_BACKGROUND_RENDER_LAYER;exports.MAX_RENDER_GROUP_PASSES=U.MAX_RENDER_GROUP_PASSES;exports.MaterialFill=U.MaterialFill;exports.ScreenGradientMaterial=U.ScreenGradientMaterial;exports.Transform3D=U.Transform3D;exports.createTwoStopGradient=U.createTwoStopGradient;exports.getRenderGroupLayer=U.getRenderGroupLayer;exports.normalizeScreenGradient=U.normalizeScreenGradient;exports.renderSequentialPasses=U.renderSequentialPasses;exports.DEFAULT_MESH_RENDERER=ie.DEFAULT_MESH_RENDERER;exports.DEFAULT_MESH_RENDERER_RENDER_STATE=ie.DEFAULT_MESH_RENDERER_RENDER_STATE;exports.MeshRenderer=ie.MeshRenderer;exports.normalizeMeshRendererRenderState=ie.normalizeMeshRendererRenderState;exports.MeshMaterial=Ve.MeshMaterial;exports.useXRCapabilities=Ye.useXRCapabilities;exports.DEFAULT_ASSET_BUDGET_BYTES=H.DEFAULT_ASSET_BUDGET_BYTES;exports.XRAssetCache=H.XRAssetCache;exports.createAssetCache=H.createAssetCache;exports.getDefaultAssetCache=H.getDefaultAssetCache;exports.useXRQuality=H.useXRQuality;exports.defineGltfAsset=K.defineGltfAsset;exports.defineTextureAsset=K.defineTextureAsset;exports.defineVideoAsset=K.defineVideoAsset;exports.disposeObject3D=K.disposeObject3D;exports.estimateGeometryBytes=K.estimateGeometryBytes;exports.estimateObjectBytes=K.estimateObjectBytes;exports.estimateTextureBytes=K.estimateTextureBytes;exports.AspectRatioContainer=ut;exports.AudioEngine=Ue;exports.AudioPlayer=xt;exports.Axes=dt;exports.CameraPermissionGate=Xt;exports.DEFAULT_TRACKING_CONFIG=pe;exports.Panel=nt;exports.PersonCutout=lt;exports.SpriteAnimation=ht;exports.TRACKER_KINDS=Qt;exports.TRACKING_CONFIG_STORAGE_KEY=ee;exports.TRACKING_CONFIG_VERSION=J;exports.VideoBackground=it;exports.XRAssetCacheProvider=$t;exports.audio=D;exports.clearTrackingConfig=Be;exports.dataURLtoFile=Rt;exports.enabledModels=Xe;exports.findCameraByFacing=Wt;exports.isMuted=Lt;exports.listCameras=Ht;exports.loadTrackingConfig=je;exports.mergeTrackingConfig=ue;exports.onMuteChange=It;exports.parseTrackingConfig=Se;exports.playOneShot=Dt;exports.prefetchMusic=kt;exports.registerSound=Pt;exports.resolveTrackingConfig=q;exports.saveTrackingConfig=de;exports.serializeTrackingConfig=he;exports.setMuted=Ut;exports.smoothNumber=V;exports.smoothVector2=Je;exports.smoothVector3=et;exports.startMusic=Nt;exports.stopMusic=vt;exports.toCameraRequest=Oe;exports.toModelOptions=qe;exports.toProviderProps=Ie;exports.toTrackerProps=Ge;exports.toggleMuted=wt;exports.useCameraPermission=we;exports.useFrameCapture=Tt;exports.useMediaRecorder=gt;exports.useMuted=Ot;exports.useXRAsset=Vt;exports.useXRAssetCache=fe;exports.useXRAssetStats=Yt;exports.useXRTrackingConfig=Jt;