@vincentt-xr/sdk 2.0.0-alpha.8 → 2.0.0-alpha.9

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 (517) hide show
  1. package/GROUNDING.md +4643 -170
  2. package/README.md +1 -0
  3. package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
  4. package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
  5. package/dist/DebuggerUI-7ngnJsBe.js +275 -0
  6. package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
  7. package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
  8. package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
  12. package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
  13. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  14. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  15. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  16. package/dist/TextLabel-c9BCucOI.js +961 -0
  17. package/dist/assets/gltfLoader.d.ts +16 -0
  18. package/dist/assets/loaders.d.ts +16 -1
  19. package/dist/body-pose/index.d.ts +521 -0
  20. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  21. package/dist/body-trigger/frame.d.ts +88 -0
  22. package/dist/body-trigger/index.d.ts +6 -0
  23. package/dist/body-trigger/moves.d.ts +235 -0
  24. package/dist/body-trigger/trigger.d.ts +75 -0
  25. package/dist/calibration/calibration.d.ts +11 -6
  26. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  27. package/dist/canonicalFace-C83I225R.cjs +1 -0
  28. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  29. package/dist/components/BodyInstruction/index.d.ts +69 -0
  30. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  31. package/dist/components/BodyTracker/index.d.ts +10 -2
  32. package/dist/components/BodyTrigger/index.d.ts +49 -0
  33. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  34. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  35. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  36. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  37. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  38. package/dist/components/FaceAtlas/index.d.ts +7 -0
  39. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  40. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  41. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  42. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  43. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  44. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  45. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  46. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  47. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  48. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  49. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  50. package/dist/components/FaceCharacter/index.d.ts +18 -0
  51. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  52. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  53. package/dist/components/FaceInset/frame.d.ts +94 -0
  54. package/dist/components/FaceInset/index.d.ts +6 -0
  55. package/dist/components/FaceInset/material.d.ts +40 -0
  56. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  57. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  58. package/dist/components/FaceInstruction/index.d.ts +56 -0
  59. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  60. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  61. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  62. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  63. package/dist/components/FaceLiquify/index.d.ts +10 -0
  64. package/dist/components/FaceLiquify/material.d.ts +39 -0
  65. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  66. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  67. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  68. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  69. package/dist/components/FaceLiquify/target.d.ts +85 -0
  70. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  71. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +5 -3
  72. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  73. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +9 -0
  74. package/dist/components/FaceMesh/index.d.ts +1 -1
  75. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  76. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  77. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  78. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  79. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  80. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  81. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  82. package/dist/components/FaceSwap/index.d.ts +13 -0
  83. package/dist/components/FaceSwap/settings.d.ts +300 -0
  84. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  85. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  86. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  87. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  88. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  89. package/dist/components/Faceless/Faceless.d.ts +51 -0
  90. package/dist/components/Faceless/index.d.ts +2 -0
  91. package/dist/components/HairLock/HairLock.d.ts +39 -0
  92. package/dist/components/HairLock/index.d.ts +2 -0
  93. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  94. package/dist/components/HandCutout/index.d.ts +35 -0
  95. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  96. package/dist/components/HandInstruction/index.d.ts +74 -0
  97. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  98. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  99. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  100. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  101. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  102. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  103. package/dist/components/HandRig/index.d.ts +101 -0
  104. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  105. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  106. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  107. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  108. package/dist/components/HandTouch/index.d.ts +2 -0
  109. package/dist/components/HeadBinding/index.d.ts +14 -0
  110. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  111. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  112. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  113. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  114. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  115. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  116. package/dist/components/HeadOccluder/index.d.ts +57 -3
  117. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  118. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  119. package/dist/components/Instruction/HintStage.d.ts +29 -0
  120. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  121. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  122. package/dist/components/Instruction/ghost.d.ts +129 -0
  123. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  124. package/dist/components/Instruction/hintLook.d.ts +81 -0
  125. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  126. package/dist/components/Instruction/index.d.ts +41 -0
  127. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  128. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  129. package/dist/components/LipEffect/LipEffect.d.ts +22 -2
  130. package/dist/components/LipEffect/LipEffectMaterial.d.ts +62 -10
  131. package/dist/components/LipEffect/LipEffects.d.ts +5 -2
  132. package/dist/components/LipEffect/defaults.d.ts +21 -2
  133. package/dist/components/LipEffect/index.d.ts +1 -1
  134. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  135. package/dist/components/LipEffect/settings.d.ts +117 -13
  136. package/dist/components/LipEffect/shader.d.ts +39 -0
  137. package/dist/components/LipEffect/types.d.ts +82 -10
  138. package/dist/components/LipEffect/useLipDesignTextures.d.ts +6 -0
  139. package/dist/components/LipEffect/uvGuide.d.ts +31 -16
  140. package/dist/components/Makeup/Blush.d.ts +18 -0
  141. package/dist/components/Makeup/Brows.d.ts +20 -0
  142. package/dist/components/Makeup/Contour.d.ts +17 -0
  143. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  144. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  145. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  146. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  147. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  148. package/dist/components/Makeup/constants.d.ts +44 -0
  149. package/dist/components/Makeup/design.d.ts +106 -0
  150. package/dist/components/Makeup/designSamples.d.ts +42 -0
  151. package/dist/components/Makeup/eyes.d.ts +114 -0
  152. package/dist/components/Makeup/fields.d.ts +10 -0
  153. package/dist/components/Makeup/geometry.d.ts +106 -0
  154. package/dist/components/Makeup/index.d.ts +26 -0
  155. package/dist/components/Makeup/looks.d.ts +28 -0
  156. package/dist/components/Makeup/material.d.ts +239 -0
  157. package/dist/components/Makeup/settings.d.ts +54 -0
  158. package/dist/components/Makeup/shades.d.ts +143 -0
  159. package/dist/components/Makeup/shapes.d.ts +27 -0
  160. package/dist/components/Makeup/skinTone.d.ts +135 -0
  161. package/dist/components/Makeup/types.d.ts +110 -0
  162. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  163. package/dist/components/Necklace/Necklace.d.ts +44 -0
  164. package/dist/components/Necklace/index.d.ts +1 -0
  165. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  166. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  167. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  168. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  169. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  170. package/dist/components/SpringSwing/index.d.ts +1 -0
  171. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  172. package/dist/components/index.d.ts +8 -0
  173. package/dist/config/index.d.ts +0 -1
  174. package/dist/context-DTxSQvp4.js +13 -0
  175. package/dist/context-hA0Rb2Xa.cjs +1 -0
  176. package/dist/contexts-BH7PdKFS.cjs +1 -0
  177. package/dist/contexts-jak8-tND.js +667 -0
  178. package/dist/coordinates/index.d.ts +2 -0
  179. package/dist/coordinates/side.d.ts +40 -0
  180. package/dist/debug-ui/default-setting.cjs +2 -2
  181. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  182. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  183. package/dist/debug-ui/index.d.ts +4 -3
  184. package/dist/debug-ui/media-source/index.d.ts +1 -1
  185. package/dist/debug-ui/media-source/session.d.ts +30 -2
  186. package/dist/debug-ui/media-source.cjs +1 -1
  187. package/dist/debug-ui/media-source.js +1 -1
  188. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  189. package/dist/debug-ui/product-hotspots/index.d.ts +3 -2
  190. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  191. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  192. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  193. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  194. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  195. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  196. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  197. package/dist/debug-ui/xr-diagnostics/index.d.ts +3 -2
  198. package/dist/debug-ui.cjs +3 -3
  199. package/dist/debug-ui.js +2250 -2472
  200. package/dist/entries/all.d.ts +3 -1
  201. package/dist/entries/core.d.ts +3 -2
  202. package/dist/entries/face-effects.d.ts +114 -8
  203. package/dist/entries/instructions.d.ts +48 -0
  204. package/dist/entries/internal.d.ts +2 -1
  205. package/dist/entries/low-level.d.ts +28 -1
  206. package/dist/entries/particles.d.ts +11 -0
  207. package/dist/entries/tracking.d.ts +37 -2
  208. package/dist/face-atlas/attributes.d.ts +30 -0
  209. package/dist/face-atlas/eyes.d.ts +272 -0
  210. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  211. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  212. package/dist/face-atlas/glsl/common.d.ts +55 -0
  213. package/dist/face-atlas/glsl/design.d.ts +49 -0
  214. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  215. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  216. package/dist/face-atlas/glsl/format.d.ts +4 -0
  217. package/dist/face-atlas/glsl/index.d.ts +59 -0
  218. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  219. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  220. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  221. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  222. package/dist/face-atlas/guide.d.ts +51 -0
  223. package/dist/face-atlas/index.d.ts +25 -0
  224. package/dist/face-atlas/lead.d.ts +117 -0
  225. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  226. package/dist/face-atlas/masks.d.ts +53 -0
  227. package/dist/face-atlas/obj.d.ts +69 -0
  228. package/dist/face-atlas/polylines.d.ts +63 -0
  229. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  230. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  231. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  232. package/dist/face-atlas/probe/constants.d.ts +137 -0
  233. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  234. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  235. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  236. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  237. package/dist/face-atlas/probe/stats.d.ts +143 -0
  238. package/dist/face-atlas/probe/targets.d.ts +70 -0
  239. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  240. package/dist/face-atlas/quality.d.ts +28 -0
  241. package/dist/face-atlas/regions.d.ts +31 -0
  242. package/dist/face-atlas/registry.d.ts +252 -0
  243. package/dist/face-atlas/renderState.d.ts +86 -0
  244. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  245. package/dist/face-atlas/shading.d.ts +406 -0
  246. package/dist/face-atlas/shapes.d.ts +86 -0
  247. package/dist/face-atlas/sides.d.ts +41 -0
  248. package/dist/face-atlas/skinMask.d.ts +35 -0
  249. package/dist/face-atlas/surface.d.ts +155 -0
  250. package/dist/face-atlas/topology.d.ts +44 -0
  251. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  252. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  253. package/dist/face-character/bindFaceModel.d.ts +106 -0
  254. package/dist/face-character/canonicalFace.d.ts +17 -0
  255. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  256. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  257. package/dist/face-character/driveFaceModel.d.ts +57 -0
  258. package/dist/face-character/expressionOutputs.d.ts +45 -0
  259. package/dist/face-character/faceExpressions.d.ts +104 -0
  260. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  261. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  262. package/dist/face-character/faceMorph.d.ts +77 -0
  263. package/dist/face-character/faceMorphs.d.ts +46 -0
  264. package/dist/face-character/facePhoto.d.ts +138 -0
  265. package/dist/face-character/facePiercings.d.ts +116 -0
  266. package/dist/face-character/facePin.d.ts +131 -0
  267. package/dist/face-character/faceReprojection.d.ts +273 -0
  268. package/dist/face-character/faceReprojector.d.ts +171 -0
  269. package/dist/face-character/faceRig.d.ts +176 -0
  270. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  271. package/dist/face-character/faceTexture.d.ts +169 -0
  272. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  273. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  274. package/dist/face-character/faceTextureStats.d.ts +298 -0
  275. package/dist/face-character/faceTransfer.d.ts +396 -0
  276. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  277. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  278. package/dist/face-character/faceWarp3D.d.ts +101 -0
  279. package/dist/face-character/faceless.d.ts +79 -0
  280. package/dist/face-character/featureWarp.d.ts +28 -0
  281. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  282. package/dist/face-character/liveValue.d.ts +12 -0
  283. package/dist/face-character/memo.d.ts +15 -0
  284. package/dist/face-effects.cjs +2252 -83
  285. package/dist/face-effects.js +14234 -1231
  286. package/dist/face-expression/index.d.ts +182 -0
  287. package/dist/face-info/landmarks.d.ts +17 -3
  288. package/dist/face-info/types.d.ts +20 -3
  289. package/dist/gestures/definitions.d.ts +15 -2
  290. package/dist/gestures/index.d.ts +1 -1
  291. package/dist/gestures/measures.d.ts +21 -8
  292. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  293. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  294. package/dist/hand/armFit.d.ts +46 -0
  295. package/dist/hand/armMask.d.ts +178 -0
  296. package/dist/hand/handCutout.d.ts +23 -0
  297. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  298. package/dist/hand/handGestures.d.ts +524 -0
  299. package/dist/hand/handPose.d.ts +98 -0
  300. package/dist/hand/handRigSolver.d.ts +159 -0
  301. package/dist/hand/handTattoo.d.ts +81 -0
  302. package/dist/hand/handTouch.d.ts +240 -0
  303. package/dist/hand/wrist.d.ts +44 -0
  304. package/dist/hand/wristFilter.d.ts +44 -0
  305. package/dist/hooks/selectors.d.ts +8 -0
  306. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  307. package/dist/hooks/useTrackerContext.d.ts +6 -0
  308. package/dist/index-B1_TzJaI.js +1104 -0
  309. package/dist/index-BavF06C6.js +190 -0
  310. package/dist/index-BfFmpddl.cjs +21 -0
  311. package/dist/index-BuBzneeW.cjs +46 -0
  312. package/dist/index-CGsQWodV.cjs +1 -0
  313. package/dist/index-CIe7eCMH.js +3200 -0
  314. package/dist/index-CfSF8LXa.cjs +1 -0
  315. package/dist/index-D5GTzOzD.cjs +1 -0
  316. package/dist/index-DBhQzvVa.js +314 -0
  317. package/dist/index-DE17y0ZI.cjs +1 -0
  318. package/dist/index-JII7huPk.js +442 -0
  319. package/dist/index-tpCr9CLj.cjs +1 -0
  320. package/dist/{renderPasses-NnKZVfBy.js → index-w1S7fI2B.js} +219 -247
  321. package/dist/index-zGaqrz_K.js +188 -0
  322. package/dist/instructions.cjs +30 -0
  323. package/dist/instructions.js +1507 -0
  324. package/dist/{internal-vsfNQycj.js → internal-B90P-clC.js} +138 -118
  325. package/dist/internal-Cjinca64.cjs +1 -0
  326. package/dist/internal.cjs +1 -1
  327. package/dist/internal.js +15 -10
  328. package/dist/iris/compute.d.ts +7 -5
  329. package/dist/iris/types.d.ts +6 -4
  330. package/dist/{landmarkMask-CbTFzBYG.js → landmarkMask-BFDyBnKM.js} +6 -6
  331. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  332. package/dist/landmarks-bftdwq6Z.js +76 -0
  333. package/dist/loaders-BGAUACsd.js +363 -0
  334. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  335. package/dist/low-level.cjs +1 -1
  336. package/dist/low-level.js +666 -602
  337. package/dist/main.cjs +1 -1
  338. package/dist/main.js +866 -1182
  339. package/dist/models/Body/index.d.ts +2 -0
  340. package/dist/models/Face/constants.d.ts +8 -0
  341. package/dist/models/Face/index.d.ts +3 -11
  342. package/dist/models/Face/rotation.d.ts +18 -3
  343. package/dist/models/Hand/HandTracking.d.ts +17 -1
  344. package/dist/models/Segmentation/index.d.ts +2 -0
  345. package/dist/models/nodeSource.d.ts +9 -0
  346. package/dist/particles/emission.d.ts +24 -0
  347. package/dist/particles/eyes.d.ts +24 -0
  348. package/dist/particles/glsl.d.ts +14 -0
  349. package/dist/particles/index.d.ts +10 -0
  350. package/dist/particles/motion.d.ts +42 -0
  351. package/dist/particles/presets.d.ts +12 -0
  352. package/dist/particles/ring.d.ts +58 -0
  353. package/dist/particles/selfTest.d.ts +53 -0
  354. package/dist/particles/settings.d.ts +127 -0
  355. package/dist/particles/shapes.d.ts +29 -0
  356. package/dist/particles/spawner.d.ts +60 -0
  357. package/dist/particles/system.d.ts +64 -0
  358. package/dist/particles.cjs +122 -0
  359. package/dist/particles.js +774 -0
  360. package/dist/product.cjs +1 -1
  361. package/dist/product.js +29 -29
  362. package/dist/{providers-C0Dlhh9Z.js → providers-C8rE26Uf.js} +127 -126
  363. package/dist/providers-DHsrhDI2.cjs +62 -0
  364. package/dist/render/renderPasses.d.ts +8 -0
  365. package/dist/render/sceneBeforeRender.d.ts +12 -0
  366. package/dist/{renderGroups-CN1cGFUo.js → renderGroups-B38pUaX2.js} +1 -1
  367. package/dist/{renderGroups-O4KmaMl9.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  368. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  369. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  370. package/dist/renderState-CJNmj5jz.js +39 -0
  371. package/dist/renderState-apSfg4eR.cjs +1 -0
  372. package/dist/scene-object.cjs +1 -1
  373. package/dist/scene-object.js +2 -2
  374. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  375. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  376. package/dist/segmentation2d/types.d.ts +6 -0
  377. package/dist/select-Ck5LGz-J.cjs +1 -0
  378. package/dist/select-pYRo_win.js +233 -0
  379. package/dist/selectors-C4X71aoD.cjs +1 -0
  380. package/dist/selectors-DmNaKIwE.js +196 -0
  381. package/dist/session-BrH8G7iJ.cjs +31 -0
  382. package/dist/session-DgA_z6O1.js +418 -0
  383. package/dist/{settings-aQk845NJ.js → settings-BJ7FMBsO.js} +53 -15
  384. package/dist/settings-C63FMBlF.cjs +1 -0
  385. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  386. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  387. package/dist/spring/index.d.ts +2 -0
  388. package/dist/spring/spring.d.ts +69 -0
  389. package/dist/spring/swing.d.ts +54 -0
  390. package/dist/tracking.cjs +10 -1
  391. package/dist/tracking.js +1002 -855
  392. package/dist/trigger-D0Pm9noT.cjs +49 -0
  393. package/dist/trigger-IQeys0oS.js +2128 -0
  394. package/dist/types/face.d.ts +20 -1
  395. package/dist/types/hand-tracking.d.ts +9 -0
  396. package/dist/types/nodes.d.ts +20 -1
  397. package/dist/types/segmentation.d.ts +5 -0
  398. package/dist/updateThrottle-BseecYag.js +4 -0
  399. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  400. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  401. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  402. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  403. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  404. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  405. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  406. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  407. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  408. package/dist/{useXRCapabilities-B1R2ghy-.cjs → useXRCapabilities-Cr3RzuAW.cjs} +1 -1
  409. package/dist/{useXRCapabilities-C68v__wB.js → useXRCapabilities-Cxmlmpbd.js} +1 -1
  410. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  411. package/dist/utils/headOccluderFit.d.ts +42 -0
  412. package/dist/utils/integrity.d.ts +17 -0
  413. package/dist/utils/resolveNumFaces.d.ts +13 -0
  414. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  415. package/dist/utils/similarityFit.d.ts +23 -0
  416. package/dist/uv-BMFt19bg.cjs +1 -0
  417. package/dist/{index-CsUdQ-pn.js → uv-DJU_XfmN.js} +15 -249
  418. package/docs/SDK_DOCUMENTATION.md +1 -2
  419. package/docs/api/adaptive-quality.mdx +1 -1
  420. package/docs/api/body-instructions.mdx +285 -0
  421. package/docs/api/body-triggers.mdx +234 -0
  422. package/docs/api/camera-permission.mdx +1 -1
  423. package/docs/api/coordinate-spaces.mdx +7 -4
  424. package/docs/api/cross-camera.mdx +3 -2
  425. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  426. package/docs/api/external-face-mesh.mdx +231 -0
  427. package/docs/api/face-actions.mdx +20 -16
  428. package/docs/api/face-attribute-expression.mdx +1 -1
  429. package/docs/api/face-binding-anchors.mdx +4 -2
  430. package/docs/api/face-character.mdx +157 -0
  431. package/docs/api/face-effects.mdx +3 -0
  432. package/docs/api/face-expression-controller.mdx +153 -0
  433. package/docs/api/face-info.mdx +17 -11
  434. package/docs/api/face-inset.mdx +204 -0
  435. package/docs/api/face-instructions.mdx +183 -0
  436. package/docs/api/face-liquify.mdx +196 -0
  437. package/docs/api/face-mesh.mdx +4 -7
  438. package/docs/api/face-morph.mdx +117 -0
  439. package/docs/api/face-painting.mdx +7 -0
  440. package/docs/api/face-reprojection.mdx +154 -0
  441. package/docs/api/face-retouching.mdx +18 -10
  442. package/docs/api/face-swap.mdx +350 -0
  443. package/docs/api/face-warp-3d.mdx +166 -0
  444. package/docs/api/faceless.mdx +143 -0
  445. package/docs/api/gestures.mdx +68 -32
  446. package/docs/api/hair.mdx +97 -0
  447. package/docs/api/hand-instructions.mdx +222 -0
  448. package/docs/api/hand-rig.mdx +535 -0
  449. package/docs/api/hand-touch.mdx +162 -0
  450. package/docs/api/head-occluder.mdx +563 -0
  451. package/docs/api/holistic-tracker.mdx +6 -1
  452. package/docs/api/instructions.mdx +323 -0
  453. package/docs/api/iris-tracking.mdx +24 -19
  454. package/docs/api/made-up-camera.mdx +131 -0
  455. package/docs/api/makeup-skin-tone.mdx +135 -0
  456. package/docs/api/makeup.mdx +353 -0
  457. package/docs/api/multi-subject.mdx +4 -1
  458. package/docs/api/particles.mdx +155 -0
  459. package/docs/api/person-cutout.mdx +1 -1
  460. package/docs/api/pin-to-face-mesh.mdx +274 -0
  461. package/docs/api/product-ar.mdx +5 -2
  462. package/docs/api/segmentation-overlay.mdx +1 -1
  463. package/docs/docs.json +29 -1
  464. package/docs/examples/lip-shaders.mdx +82 -33
  465. package/docs/guides/face-atlas-template.svg +1 -0
  466. package/docs/guides/face-atlas-textures.mdx +186 -0
  467. package/docs/guides/face-texture-template.svg +1 -0
  468. package/docs/guides/harness-debug-ui.mdx +4 -4
  469. package/docs/guides/lip-effect-textures.mdx +178 -102
  470. package/docs/guides/lip-uv-template.png +0 -0
  471. package/docs/guides/lip-uv-template.svg +1 -1
  472. package/docs/guides/makeup-design-textures.mdx +109 -0
  473. package/docs/introduction.mdx +1 -2
  474. package/package.json +11 -1
  475. package/dist/DebuggerUI-C-ldiozL.js +0 -269
  476. package/dist/DebuggerUI-CWX5EtQv.cjs +0 -1
  477. package/dist/FaceMeshRenderer-BEEXZwS6.cjs +0 -158
  478. package/dist/FaceMeshRenderer-UuH5sTXG.js +0 -1322
  479. package/dist/FaceRetouch-C7h7x9kd.js +0 -683
  480. package/dist/FaceRetouch-DqftT26Y.cjs +0 -134
  481. package/dist/GLTFLoader-C5q63sKO.js +0 -1633
  482. package/dist/GLTFLoader-Cb_CRwmG.cjs +0 -1
  483. package/dist/SegmentationOverlay-DQuW3dsc.js +0 -133
  484. package/dist/SegmentationOverlay-aWVod8Kl.cjs +0 -1
  485. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  486. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  487. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  488. package/dist/contexts-CO0sd4JQ.cjs +0 -1
  489. package/dist/contexts-FzlnnMYD.js +0 -669
  490. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  491. package/dist/getFaceInfo-BkZfaQs-.js +0 -118
  492. package/dist/getFaceInfo-ahPxQFGu.cjs +0 -1
  493. package/dist/index--RgGzZ6X.cjs +0 -47
  494. package/dist/index-CHVbH0hz.js +0 -214
  495. package/dist/index-CeVkgsag.cjs +0 -1
  496. package/dist/index-CnGox6Xr.js +0 -3054
  497. package/dist/index-DKBAh6hV.cjs +0 -1
  498. package/dist/index-DsZwTfG0.cjs +0 -1
  499. package/dist/index-Dw6tj2Mi.js +0 -144
  500. package/dist/index-OCPjOaeP.cjs +0 -1
  501. package/dist/index-s9pF4zkG.js +0 -2053
  502. package/dist/internal-BYza1h8_.cjs +0 -1
  503. package/dist/measures-9dQPdw96.js +0 -154
  504. package/dist/measures-KfJzpvod.cjs +0 -1
  505. package/dist/providers-YNwkmNeK.cjs +0 -62
  506. package/dist/renderPasses-Cg-zqmEz.cjs +0 -21
  507. package/dist/screenTransform-BenfCtZt.js +0 -44
  508. package/dist/screenTransform-BiXdpVf0.cjs +0 -1
  509. package/dist/segmentation-9PhSvc-R.cjs +0 -1
  510. package/dist/segmentation-CeOTKemr.js +0 -5
  511. package/dist/selectors-C5G1PMYL.js +0 -195
  512. package/dist/selectors-Du_PsVnW.cjs +0 -1
  513. package/dist/session-BBr0yN8h.cjs +0 -31
  514. package/dist/session-Cy0m7l7-.js +0 -363
  515. package/dist/settings-DRR7-snV.cjs +0 -1
  516. package/dist/useFaceInfo-Blf7FCu3.js +0 -303
  517. package/dist/useFaceInfo-C5mO8NQY.cjs +0 -1
@@ -0,0 +1,1104 @@
1
+ import { jsxs as T, jsx as s, Fragment as _ } from "react/jsx-runtime";
2
+ import { useFrame as V, useThree as ne } from "@react-three/fiber";
3
+ import { useRef as w, useState as Ie, useEffect as U, useCallback as te, useMemo as b, useLayoutEffect as Le } from "react";
4
+ import * as E from "three";
5
+ import { Quaternion as de, Vector3 as P, Euler as xe } from "three";
6
+ import { M as Fe } from "./index-zGaqrz_K.js";
7
+ import { u as ge, T as N, m as Xe, r as Ge } from "./renderPasses-B6l8IpJv.js";
8
+ import { N as Ce, s as Re, t as Ye, b as ue, P as We, I as Je, M as Pe, C as ze } from "./index-w1S7fI2B.js";
9
+ import { u as fe, T as Ke, S as Ve } from "./TextLabel-c9BCucOI.js";
10
+ import { a as me, u as re, S as Oe } from "./context-DTxSQvp4.js";
11
+ import { d as He, j as Ne, k as Ue, f as Ze, c as je, S as qe } from "./contexts-jak8-tND.js";
12
+ import { m as pe, l as _e, r as Se, s as $e } from "./index-DBhQzvVa.js";
13
+ import { F as en } from "./index-BavF06C6.js";
14
+ import { r as nn } from "./landmarks-bftdwq6Z.js";
15
+ import { a as tn } from "./useFaceInfo-J4x7LsqL.js";
16
+ import { au as rn, D as An, u as on } from "./index-CIe7eCMH.js";
17
+ import { useTexture as sn } from "@react-three/drei";
18
+ import { n as an } from "./select-pYRo_win.js";
19
+ const z = {
20
+ width: 720,
21
+ height: 1280
22
+ }, cn = (e = [0.5, 0.5]) => [
23
+ e[0] * 2 - 1,
24
+ e[1] * 2 - 1
25
+ ], $ = ({
26
+ position: e = [0, 0],
27
+ size: n = [1, 1]
28
+ }) => {
29
+ const t = n[0] / 2, A = n[1] / 2;
30
+ return {
31
+ left: e[0] - t,
32
+ right: e[0] + t,
33
+ top: e[1] + A,
34
+ bottom: e[1] - A
35
+ };
36
+ }, ln = ({
37
+ position: e = [0, 0],
38
+ size: n,
39
+ canvasSize: t = z
40
+ }) => {
41
+ const A = t.width / 2 || z.width / 2, o = t.height / 2 || z.height / 2, r = n ?? [t.width, t.height];
42
+ return $({
43
+ position: [e[0] / A, e[1] / o],
44
+ size: [r[0] / A, r[1] / o]
45
+ });
46
+ }, Be = ({
47
+ coordinateSpace: e = "normalized",
48
+ canvasSize: n = z,
49
+ position: t,
50
+ size: A,
51
+ fallbackAnchors: o
52
+ }) => o || (!t && !A ? $({}) : e === "canvas" ? ln({ position: t, size: A, canvasSize: n }) : $({ position: t, size: A })), dn = "data:image/png;base64,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";
53
+ function ee(e, n) {
54
+ return !Number.isFinite(e) || !Number.isFinite(n) || e <= 0 || n <= 0 ? [1, 1, 1] : Math.abs(e - n) < 1e-6 ? [1, 1, 1] : e > n ? [n / e, 1, 1] : [1, e / n, 1];
55
+ }
56
+ const gn = (e, n) => e || (n === "cover" ? "fill" : n === "stretch" ? "stretch" : "fit"), he = (e, n) => {
57
+ const [t, A] = ee(e, n);
58
+ return t === 1 && A === 1 ? [1, 1, 1] : t < 1 ? [1, 1 / t, 1] : [1 / A, 1, 1];
59
+ }, un = (e, n, t, A, o, r, l) => {
60
+ let a = [1, 1, 1], d = [1, 1, 1], c = [1, 1], f = [0, 0];
61
+ switch (e) {
62
+ case "fit":
63
+ a = ee(n, t), d = a;
64
+ break;
65
+ case "fitWidth":
66
+ a = [1, n > 0 && t > 0 ? n / t : 1, 1], d = a;
67
+ break;
68
+ case "fitHeight":
69
+ a = [n > 0 && t > 0 ? t / n : 1, 1, 1], d = a;
70
+ break;
71
+ case "center":
72
+ a = r && l && r.width > 0 && r.height > 0 && l.width > 0 && l.height > 0 ? [l.width / r.width, l.height / r.height, 1] : ee(n, t), d = a;
73
+ break;
74
+ case "fill":
75
+ a = he(n, t), d = a;
76
+ break;
77
+ case "fillAndCut":
78
+ if (d = he(n, t), t > n) {
79
+ const u = n / t;
80
+ c = [u, 1], f = [(1 - u) / 2, 0];
81
+ } else if (t < n) {
82
+ const u = t / n;
83
+ c = [1, u], f = [0, (1 - u) / 2];
84
+ }
85
+ break;
86
+ }
87
+ return {
88
+ meshScale: [a[0] * (A ? -1 : 1), a[1] * (o ? -1 : 1), 1],
89
+ guideScale: d,
90
+ repeat: c,
91
+ offset: f
92
+ };
93
+ }, fn = (e, n) => e ?? (n ? { kind: "image", src: n } : { kind: "default" }), R = (e) => {
94
+ const n = e.image;
95
+ return {
96
+ width: (n == null ? void 0 : n.videoWidth) ?? (n == null ? void 0 : n.width) ?? 1,
97
+ height: (n == null ? void 0 : n.videoHeight) ?? (n == null ? void 0 : n.height) ?? 1
98
+ };
99
+ }, hn = (e) => {
100
+ if (e.isVideoTexture || e.isCanvasTexture) return !0;
101
+ const n = e.image;
102
+ return typeof HTMLCanvasElement < "u" && n instanceof HTMLCanvasElement || typeof OffscreenCanvas < "u" && n instanceof OffscreenCanvas;
103
+ }, vn = (e) => {
104
+ const { width: n, height: t } = R(e);
105
+ return n > 0 && t > 0 ? n / t : 1;
106
+ }, En = /* @__PURE__ */ new Set([
107
+ "overlay",
108
+ "softLight",
109
+ "hardLight",
110
+ "difference",
111
+ "exclusion"
112
+ ]), In = {
113
+ overlay: 0,
114
+ softLight: 1,
115
+ hardLight: 2,
116
+ difference: 3,
117
+ exclusion: 4
118
+ }, Cn = (e) => {
119
+ switch (e) {
120
+ case "add":
121
+ return { blending: E.AdditiveBlending };
122
+ case "subtract":
123
+ return { blending: E.SubtractiveBlending };
124
+ case "multiply":
125
+ return { blending: E.MultiplyBlending };
126
+ case "screen":
127
+ return {
128
+ blending: E.CustomBlending,
129
+ blendSrc: E.OneFactor,
130
+ blendDst: E.OneMinusSrcColorFactor,
131
+ blendEquation: E.AddEquation
132
+ };
133
+ case "lighten":
134
+ return {
135
+ blending: E.CustomBlending,
136
+ blendSrc: E.OneFactor,
137
+ blendDst: E.OneFactor,
138
+ blendEquation: E.MaxEquation
139
+ };
140
+ case "darken":
141
+ return {
142
+ blending: E.CustomBlending,
143
+ blendSrc: E.OneFactor,
144
+ blendDst: E.OneFactor,
145
+ blendEquation: E.MinEquation
146
+ };
147
+ default:
148
+ return { blending: E.NormalBlending };
149
+ }
150
+ }, mn = `
151
+ varying vec2 vUv;
152
+ void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, pn = `
153
+ uniform sampler2D imageMap;uniform sampler2D backdropMap;uniform vec2 resolution;
154
+ uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int blendMode;varying vec2 vUv;
155
+ float overlayChannel(float b,float s){return b<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}
156
+ float hardLightChannel(float b,float s){return s<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}
157
+ float softLightChannel(float b,float s){return s<.5?b-(1.-2.*s)*b*(1.-b):b+(2.*s-1.)*(sqrt(max(b,0.))-b);}
158
+ vec3 applyAdvancedBlend(vec3 b,vec3 s){
159
+ if(blendMode==0)return vec3(overlayChannel(b.r,s.r),overlayChannel(b.g,s.g),overlayChannel(b.b,s.b));
160
+ if(blendMode==1)return vec3(softLightChannel(b.r,s.r),softLightChannel(b.g,s.g),softLightChannel(b.b,s.b));
161
+ if(blendMode==2)return vec3(hardLightChannel(b.r,s.r),hardLightChannel(b.g,s.g),hardLightChannel(b.b,s.b));
162
+ if(blendMode==3)return abs(b-s);return b+s-2.*b*s;}
163
+ void main(){vec4 image=texture2D(imageMap,vUv)*vec4(tint,opacity);if(image.a<=alphaTest)discard;
164
+ vec2 uv=gl_FragCoord.xy/max(resolution,vec2(1.));vec3 base=texture2D(backdropMap,uv).rgb;
165
+ vec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);
166
+ #include <colorspace_fragment>
167
+ }`, Sn = () => {
168
+ const e = document.createElement("canvas");
169
+ e.width = 256, e.height = 256;
170
+ const n = e.getContext("2d");
171
+ if (!n) return new E.CanvasTexture(e);
172
+ const t = n.createRadialGradient(96, 80, 10, 128, 128, 128);
173
+ t.addColorStop(0, "#ffffff"), t.addColorStop(0.18, "#f8fafc"), t.addColorStop(0.44, "#cbd5e1"), t.addColorStop(0.72, "#475569"), t.addColorStop(1, "#0f172a"), n.fillStyle = t, n.fillRect(0, 0, e.width, e.height);
174
+ const A = new E.CanvasTexture(e);
175
+ return A.needsUpdate = !0, A;
176
+ }, Bn = ["alpha", "red", "green", "luminance"], Qn = (e) => {
177
+ const n = Bn.indexOf(e ?? "alpha");
178
+ return n < 0 ? 0 : n;
179
+ }, Tn = `
180
+ varying vec2 vUv;
181
+ void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, bn = `
182
+ uniform sampler2D imageMap;uniform sampler2D maskMap;uniform mat3 mapTransform;
183
+ uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int maskChannel;uniform float maskInvert;
184
+ uniform float maskFeather;uniform float maskErode;uniform vec2 maskTexel;
185
+ varying vec2 vUv;
186
+ float coverageAt(vec2 uv){
187
+ vec4 m=texture2D(maskMap,uv);
188
+ float c=maskChannel==0?m.a:maskChannel==1?m.r:maskChannel==2?m.g:dot(m.rgb,vec3(0.299,0.587,0.114));
189
+ return mix(c,1.0-c,maskInvert);}
190
+ void main(){
191
+ vec2 uv=(mapTransform*vec3(vUv,1.0)).xy;
192
+ vec4 image=texture2D(imageMap,uv);
193
+ float coverage;
194
+ if(maskFeather>0.0){
195
+ vec2 step=maskTexel*maskFeather;
196
+ coverage=0.0;
197
+ for(int y=-1;y<=1;y++){for(int x=-1;x<=1;x++){coverage+=coverageAt(uv+vec2(float(x),float(y))*step);}}
198
+ coverage/=9.0;
199
+ // Erode: raise the threshold on the blurred edge so the silhouette shrinks
200
+ // by up to the feather radius (maskErode is a fraction of that width).
201
+ coverage=smoothstep(clamp(maskErode,0.0,0.95),1.0,coverage);
202
+ }else{coverage=coverageAt(uv);}
203
+ float alpha=image.a*opacity*coverage;
204
+ if(alpha<=alphaTest)discard;
205
+ gl_FragColor=vec4(image.rgb*tint,alpha);
206
+ #include <colorspace_fragment>
207
+ }`;
208
+ function kn({
209
+ materialTexture: e,
210
+ sourceTexture: n,
211
+ onSourceSizeChange: t
212
+ }) {
213
+ const A = w(R(n));
214
+ return V(() => {
215
+ e.needsUpdate = !0;
216
+ const o = R(n);
217
+ (o.width !== A.current.width || o.height !== A.current.height) && (A.current = o, t(o));
218
+ }), null;
219
+ }
220
+ const yn = 999, Mn = Math.PI / 180, Dn = Ne([
221
+ Ze
222
+ ]);
223
+ function wn(e) {
224
+ const [n, t] = Ie(null);
225
+ return U(() => {
226
+ if (t(null), !e || typeof document > "u") return;
227
+ const A = new AbortController();
228
+ let o;
229
+ return Dn({ kind: "gif", src: e }, A.signal).then((r) => {
230
+ o = r, t(r);
231
+ }).catch((r) => {
232
+ r instanceof DOMException && r.name === "AbortError" || console.warn("[xr-sdk] Failed to load GIF ScreenImage source", r);
233
+ }), () => {
234
+ A.abort(), Ue(o);
235
+ };
236
+ }, [e]), n;
237
+ }
238
+ function ve({
239
+ name: e,
240
+ source: n,
241
+ src: t,
242
+ fit: A,
243
+ stretchMode: o,
244
+ materialType: r = "unlit",
245
+ blendMode: l = "normal",
246
+ backdropTexture: a = null,
247
+ rotation: d = 0,
248
+ opacity: c = 1,
249
+ color: f = "#ffffff",
250
+ maskTexture: u = null,
251
+ maskChannel: h,
252
+ maskInvert: v = !1,
253
+ maskFeather: g = 0,
254
+ maskErode: L = 0,
255
+ flipX: y = !1,
256
+ flipY: I = !1,
257
+ renderOrder: M = yn,
258
+ transparent: p = !0,
259
+ alphaTest: S = 0,
260
+ overlay: B = !0,
261
+ visible: Y,
262
+ layoutSize: X
263
+ }) {
264
+ const { size: m } = ne(), i = He(), Q = fn(n, t), Z = Q.kind === "image" ? Q.src : dn, W = sn(Z), j = wn(
265
+ Q.kind === "gif" ? Q.src : void 0
266
+ ), x = Q.kind === "texture" ? Q.texture : Q.kind === "gif" ? (j == null ? void 0 : j.texture) ?? W : W, Ae = me(), oe = gn(o, A), [Qe, ie] = Ie(
267
+ () => R(x)
268
+ );
269
+ U(() => {
270
+ ie(R(x));
271
+ }, [x]);
272
+ const se = hn(x), J = se ? Qe : R(x), Te = te(
273
+ (F) => ie(F),
274
+ []
275
+ ), ae = J.width > 0 && J.height > 0 ? J.width / J.height : vn(x), ce = b(() => Sn(), []), G = b(
276
+ () => un(
277
+ oe,
278
+ Ae,
279
+ ae,
280
+ y,
281
+ I,
282
+ X,
283
+ J
284
+ ),
285
+ [oe, Ae, ae, y, I, X, J]
286
+ ), k = b(() => {
287
+ const F = x.clone();
288
+ return F.needsUpdate = !0, F.repeat.set(G.repeat[0], G.repeat[1]), F.offset.set(G.offset[0], G.offset[1]), F;
289
+ }, [x, G.repeat, G.offset]);
290
+ fe(k), fe(ce);
291
+ const O = b(() => Cn(l), [l]), H = En.has(l) ? l : null, q = a ?? (i == null ? void 0 : i.finalColorTexture) ?? (i == null ? void 0 : i.sceneColorTexture) ?? null, be = H !== null && q !== null, ke = b(
292
+ () => ({
293
+ imageMap: k,
294
+ backdropMap: q,
295
+ resolution: new E.Vector2(m.width, m.height),
296
+ tint: new E.Color(f),
297
+ opacity: c,
298
+ alphaTest: S,
299
+ blendMode: H === null ? 0 : In[H]
300
+ }),
301
+ [
302
+ H,
303
+ S,
304
+ q,
305
+ m.height,
306
+ m.width,
307
+ f,
308
+ k,
309
+ c
310
+ ]
311
+ ), ye = ge(ke), le = b(() => (k.updateMatrix(), k.matrix.clone()), [k]), Me = b(
312
+ () => ({
313
+ imageMap: k,
314
+ maskMap: u,
315
+ mapTransform: le,
316
+ tint: new E.Color(f),
317
+ opacity: c,
318
+ alphaTest: S,
319
+ maskChannel: Qn(h),
320
+ maskInvert: v ? 1 : 0,
321
+ maskFeather: g,
322
+ maskErode: L,
323
+ // Feather radius is expressed in mask texels so it stays the same
324
+ // on-screen width whatever resolution the mask arrives at.
325
+ maskTexel: (() => {
326
+ const { width: F, height: we } = R(u ?? k);
327
+ return new E.Vector2(1 / Math.max(F, 1), 1 / Math.max(we, 1));
328
+ })()
329
+ }),
330
+ [
331
+ S,
332
+ f,
333
+ le,
334
+ h,
335
+ L,
336
+ g,
337
+ v,
338
+ u,
339
+ k,
340
+ c
341
+ ]
342
+ ), De = ge(Me);
343
+ return /* @__PURE__ */ T("group", { visible: Y, children: [
344
+ se ? /* @__PURE__ */ s(
345
+ kn,
346
+ {
347
+ materialTexture: k,
348
+ sourceTexture: x,
349
+ onSourceSizeChange: Te
350
+ }
351
+ ) : null,
352
+ /* @__PURE__ */ T(
353
+ "mesh",
354
+ {
355
+ name: e,
356
+ scale: G.meshScale,
357
+ rotation: [0, 0, d * Mn],
358
+ renderOrder: M,
359
+ children: [
360
+ /* @__PURE__ */ s("planeGeometry", { args: [1, 1] }),
361
+ u ? /* @__PURE__ */ s(
362
+ "shaderMaterial",
363
+ {
364
+ uniforms: De,
365
+ vertexShader: Tn,
366
+ fragmentShader: bn,
367
+ transparent: !0,
368
+ depthTest: !B,
369
+ depthWrite: !B,
370
+ toneMapped: !1,
371
+ ...O
372
+ }
373
+ ) : be ? /* @__PURE__ */ s(
374
+ "shaderMaterial",
375
+ {
376
+ uniforms: ye,
377
+ vertexShader: mn,
378
+ fragmentShader: pn,
379
+ transparent: !1,
380
+ depthTest: !B,
381
+ depthWrite: !B,
382
+ toneMapped: !1
383
+ }
384
+ ) : r === "standardPBR" ? /* @__PURE__ */ s(
385
+ "meshStandardMaterial",
386
+ {
387
+ map: k,
388
+ transparent: p || c < 1,
389
+ opacity: c,
390
+ color: f,
391
+ alphaTest: S,
392
+ depthTest: !B,
393
+ depthWrite: !B,
394
+ toneMapped: !1,
395
+ roughness: 0.72,
396
+ metalness: 0.08,
397
+ emissive: f,
398
+ emissiveIntensity: 0.18,
399
+ ...O
400
+ }
401
+ ) : r === "matcap" ? /* @__PURE__ */ s(
402
+ "meshMatcapMaterial",
403
+ {
404
+ map: k,
405
+ matcap: ce,
406
+ transparent: p || c < 1,
407
+ opacity: c,
408
+ color: f,
409
+ alphaTest: S,
410
+ depthTest: !B,
411
+ depthWrite: !B,
412
+ toneMapped: !1,
413
+ ...O
414
+ }
415
+ ) : /* @__PURE__ */ s(
416
+ "meshBasicMaterial",
417
+ {
418
+ map: k,
419
+ transparent: p || c < 1,
420
+ opacity: c,
421
+ color: f,
422
+ alphaTest: S,
423
+ depthTest: !B,
424
+ depthWrite: !B,
425
+ toneMapped: !1,
426
+ ...O
427
+ }
428
+ )
429
+ ]
430
+ }
431
+ )
432
+ ] });
433
+ }
434
+ const Ln = { left: 0, right: 0, top: 0, bottom: 0 }, xn = Math.PI / 180;
435
+ function Fn({
436
+ anchors: e,
437
+ offsets: n,
438
+ pivot: t,
439
+ rotation: A,
440
+ children: o
441
+ }) {
442
+ const { width: r, height: l } = re(), a = b(
443
+ () => ({ left: -1, right: 1, top: 1, bottom: -1, ...e }),
444
+ [e]
445
+ ), d = b(() => ({ ...Ln, ...n }), [n]), c = b(
446
+ () => je(r, l, a, d, t),
447
+ [l, t, a, d, r]
448
+ ), f = c.width > 0 && c.height > 0 ? c.width / c.height : null;
449
+ return /* @__PURE__ */ s(
450
+ "group",
451
+ {
452
+ position: [c.centerX - c.pivotX, c.centerY - c.pivotY, 0],
453
+ rotation: [0, 0, A * xn],
454
+ scale: [c.width, c.height, 1],
455
+ children: /* @__PURE__ */ s(Oe.Provider, { value: f, children: o })
456
+ }
457
+ );
458
+ }
459
+ function Xn({
460
+ transform: e,
461
+ guideLayer: n,
462
+ onChange: t,
463
+ children: A
464
+ }) {
465
+ return /* @__PURE__ */ s(
466
+ Ce,
467
+ {
468
+ guideColor: "#22d3ee",
469
+ guideLayer: n,
470
+ transform: e,
471
+ onChange: t,
472
+ children: A
473
+ }
474
+ );
475
+ }
476
+ const Gn = {
477
+ left: -1,
478
+ right: 1,
479
+ top: 1,
480
+ bottom: -1
481
+ }, Rn = {}, Yn = [0.5, 0.5];
482
+ [
483
+ ["Normal", "normal"],
484
+ ["Add", "add"],
485
+ ["Subtract", "subtract"],
486
+ ["Multiply", "multiply"],
487
+ ["Screen", "screen"],
488
+ ["Lighten", "lighten"],
489
+ ["Darken", "darken"],
490
+ ["Overlay", "overlay"],
491
+ ["Soft Light", "softLight"],
492
+ ["Hard Light", "hardLight"],
493
+ ["Difference", "difference"],
494
+ ["Exclusion", "exclusion"]
495
+ ].map(([e, n]) => ({ label: e, value: n }));
496
+ const Wn = (e) => [
497
+ e[0] * 2 - 1,
498
+ e[1] * 2 - 1
499
+ ], Jn = (e, n, t, A, o) => e || (!A && !o ? Gn : Be({
500
+ coordinateSpace: n,
501
+ canvasSize: t ?? z,
502
+ position: A,
503
+ size: o
504
+ }));
505
+ function Pn({
506
+ anchors: e,
507
+ coordinateSpace: n,
508
+ canvasSize: t,
509
+ position: A,
510
+ size: o,
511
+ offsets: r = Rn,
512
+ pivot: l = Yn,
513
+ rotation: a = 0,
514
+ transform: d,
515
+ onScreenTransformChange: c,
516
+ transformGuideLayer: f = "scene",
517
+ ...u
518
+ }) {
519
+ const h = b(
520
+ () => Jn(e, n, t, A, o),
521
+ [e, t, n, A, o]
522
+ ), v = b(() => Wn(l), [l]);
523
+ if (d) {
524
+ const g = pe(d);
525
+ return g.enabled ? /* @__PURE__ */ s(
526
+ Xn,
527
+ {
528
+ guideLayer: f,
529
+ transform: g,
530
+ onChange: c,
531
+ children: /* @__PURE__ */ s(
532
+ ve,
533
+ {
534
+ ...u,
535
+ layoutSize: g.size,
536
+ renderOrder: u.renderOrder ?? g.renderOrder,
537
+ overlay: u.overlay ?? g.overlay,
538
+ visible: u.visible ?? g.visible,
539
+ rotation: 0
540
+ }
541
+ )
542
+ }
543
+ ) : null;
544
+ }
545
+ return /* @__PURE__ */ s(
546
+ Fn,
547
+ {
548
+ anchors: h,
549
+ offsets: r,
550
+ pivot: v,
551
+ rotation: a,
552
+ children: /* @__PURE__ */ s(
553
+ ve,
554
+ {
555
+ ...u,
556
+ layoutSize: o ? { width: o[0], height: o[1] } : void 0,
557
+ rotation: 0
558
+ }
559
+ )
560
+ }
561
+ );
562
+ }
563
+ const zn = 2.5, Kn = "#38bdf8", Vn = {
564
+ top: { left: -0.92, right: 0.92, top: 0.92, bottom: 0.56 },
565
+ center: { left: -0.92, right: 0.92, top: 0.18, bottom: -0.18 },
566
+ bottom: { left: -0.92, right: 0.92, top: -0.56, bottom: -0.92 }
567
+ };
568
+ function On({
569
+ bend: e,
570
+ bendPreset: n,
571
+ bendStrength: t
572
+ }) {
573
+ return {
574
+ bendPreset: (e == null ? void 0 : e.preset) ?? n,
575
+ bendStrength: (e == null ? void 0 : e.strength) ?? t
576
+ };
577
+ }
578
+ function Hn({
579
+ width: e,
580
+ height: n
581
+ }) {
582
+ const t = Math.max(1, e), A = Math.max(1, n);
583
+ return {
584
+ aspect: t / A,
585
+ resolution: A
586
+ };
587
+ }
588
+ function Ee(e) {
589
+ const n = me(), { bend: t, layoutSize: A, renderOrder: o, overlay: r = !0, ...l } = e, a = A ? Hn(A) : void 0, d = Math.max(
590
+ (a == null ? void 0 : a.aspect) ?? n ?? zn,
591
+ 0.1
592
+ ), c = On({
593
+ bend: t,
594
+ bendPreset: l.bendPreset,
595
+ bendStrength: l.bendStrength
596
+ });
597
+ return /* @__PURE__ */ s(
598
+ Ke,
599
+ {
600
+ ...l,
601
+ aspect: d,
602
+ resolution: (a == null ? void 0 : a.resolution) ?? l.resolution,
603
+ ...c,
604
+ overlay: r,
605
+ renderOrder: o
606
+ }
607
+ );
608
+ }
609
+ function Nn({
610
+ transform: e,
611
+ guideLayer: n,
612
+ onChange: t,
613
+ children: A
614
+ }) {
615
+ return /* @__PURE__ */ s(
616
+ Ce,
617
+ {
618
+ guideColor: Kn,
619
+ guideLayer: n,
620
+ transform: e,
621
+ onChange: t,
622
+ children: A
623
+ }
624
+ );
625
+ }
626
+ function Un(e = "center") {
627
+ return Vn[e];
628
+ }
629
+ function Zn({
630
+ anchors: e,
631
+ coordinateSpace: n,
632
+ canvasSize: t,
633
+ position: A,
634
+ size: o,
635
+ transform: r,
636
+ pivot: l,
637
+ verticalAlign: a
638
+ }) {
639
+ return {
640
+ resolvedAnchors: r != null && r.anchors ? r.anchors : e || (r != null && r.position || r != null && r.size || A || o ? Be({
641
+ coordinateSpace: (r == null ? void 0 : r.coordinateSpace) ?? n,
642
+ canvasSize: (r == null ? void 0 : r.canvasSize) ?? t,
643
+ position: (r == null ? void 0 : r.position) ?? A,
644
+ size: (r == null ? void 0 : r.size) ?? o
645
+ }) : Un(a)),
646
+ resolvedOffsets: r == null ? void 0 : r.offsets,
647
+ resolvedPivot: cn((r == null ? void 0 : r.pivot) ?? l ?? [0.5, 0.5])
648
+ };
649
+ }
650
+ function jn({
651
+ anchors: e,
652
+ coordinateSpace: n,
653
+ canvasSize: t,
654
+ offsets: A,
655
+ pivot: o,
656
+ position: r,
657
+ rotation: l = 0,
658
+ size: a,
659
+ transform: d,
660
+ screenTransform: c,
661
+ onScreenTransformChange: f,
662
+ transformGuideLayer: u = "scene",
663
+ verticalAlign: h = "center",
664
+ ...v
665
+ }) {
666
+ const { resolvedAnchors: g, resolvedOffsets: L, resolvedPivot: y } = b(
667
+ () => Zn({
668
+ anchors: e,
669
+ coordinateSpace: n,
670
+ canvasSize: t,
671
+ position: r,
672
+ size: a,
673
+ transform: d,
674
+ pivot: o,
675
+ verticalAlign: h
676
+ }),
677
+ [e, t, n, o, r, a, d, h]
678
+ ), I = (d == null ? void 0 : d.offsets) ?? A ?? L, M = (d == null ? void 0 : d.rotation) ?? l;
679
+ if (c) {
680
+ const p = pe(c);
681
+ return p.enabled ? /* @__PURE__ */ s(
682
+ Nn,
683
+ {
684
+ guideLayer: u,
685
+ transform: p,
686
+ onChange: f,
687
+ children: /* @__PURE__ */ s(
688
+ Ee,
689
+ {
690
+ ...v,
691
+ layoutSize: p.size,
692
+ verticalAlign: h,
693
+ renderOrder: v.renderOrder ?? p.renderOrder,
694
+ overlay: v.overlay ?? p.overlay,
695
+ visible: v.visible ?? p.visible
696
+ }
697
+ )
698
+ }
699
+ ) : null;
700
+ }
701
+ return /* @__PURE__ */ s(qe, { anchors: g, offsets: I, pivot: y, children: /* @__PURE__ */ s("group", { rotation: [0, 0, M * Math.PI / 180], children: /* @__PURE__ */ s(Ee, { ...v, verticalAlign: h }) }) });
702
+ }
703
+ const qn = ({ settings: e, transform: n }) => {
704
+ const t = b(
705
+ () => /* @__PURE__ */ T("group", { name: "LightEditorGizmo", visible: e.showHelper, children: [
706
+ /* @__PURE__ */ T("mesh", { renderOrder: 1e3, children: [
707
+ /* @__PURE__ */ s("sphereGeometry", { args: [0.12, 12, 8] }),
708
+ /* @__PURE__ */ s("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
709
+ ] }),
710
+ /* @__PURE__ */ T("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
711
+ /* @__PURE__ */ s("coneGeometry", { args: [0.08, 0.45, 12] }),
712
+ /* @__PURE__ */ s("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
713
+ ] })
714
+ ] }),
715
+ [e.showHelper]
716
+ );
717
+ return e.enabled ? /* @__PURE__ */ T(N, { value: n, children: [
718
+ t,
719
+ e.type === "ambient" ? /* @__PURE__ */ s("ambientLight", { color: e.color, intensity: e.intensity }) : null,
720
+ e.type === "directional" ? /* @__PURE__ */ s(
721
+ "directionalLight",
722
+ {
723
+ color: e.color,
724
+ intensity: e.intensity,
725
+ castShadow: e.castShadow
726
+ }
727
+ ) : null,
728
+ e.type === "point" ? /* @__PURE__ */ s(
729
+ "pointLight",
730
+ {
731
+ color: e.color,
732
+ intensity: e.intensity,
733
+ distance: e.distance,
734
+ decay: e.decay,
735
+ castShadow: e.castShadow
736
+ }
737
+ ) : null,
738
+ e.type === "spot" ? /* @__PURE__ */ s(
739
+ "spotLight",
740
+ {
741
+ color: e.color,
742
+ intensity: e.intensity,
743
+ distance: e.distance,
744
+ angle: e.angle,
745
+ penumbra: e.penumbra,
746
+ decay: e.decay,
747
+ castShadow: e.castShadow
748
+ }
749
+ ) : null
750
+ ] }) : null;
751
+ }, _n = ({
752
+ source: e,
753
+ target: n,
754
+ settings: t
755
+ }) => {
756
+ if (!t.enabled || !n) return !1;
757
+ const A = new de();
758
+ if (t.mode === "point") {
759
+ const r = new P();
760
+ n.getWorldPosition(r), e.lookAt(r), A.copy(e.quaternion);
761
+ } else
762
+ n.getWorldQuaternion(A);
763
+ const o = new de().setFromEuler(
764
+ new xe(
765
+ t.offsetRotation.x * Math.PI / 180,
766
+ t.offsetRotation.y * Math.PI / 180,
767
+ t.offsetRotation.z * Math.PI / 180
768
+ )
769
+ );
770
+ return e.quaternion.copy(A).multiply(o), !0;
771
+ }, $n = ({ target: e, settings: n, children: t }) => {
772
+ const A = w(null);
773
+ return V(() => {
774
+ A.current && _n({ source: A.current, target: e, settings: n });
775
+ }), /* @__PURE__ */ s("group", { ref: A, children: t });
776
+ }, et = (e, n) => {
777
+ let t = e;
778
+ for (; t && t !== n; ) {
779
+ if ("isTransformControls" in t && t.isTransformControls === !0) return !0;
780
+ t = t.parent;
781
+ }
782
+ return !1;
783
+ }, D = ({ children: e, layer: n }) => {
784
+ const t = w(null), A = w(0), o = te(() => {
785
+ n === void 0 || !t.current || t.current.traverse((r) => {
786
+ et(r, t.current) || r.layers.set(n);
787
+ });
788
+ }, [n]);
789
+ return Le(() => {
790
+ o(), A.current = 2;
791
+ }, [o, e]), V(() => {
792
+ A.current <= 0 || (o(), A.current -= 1);
793
+ }, -1e3), /* @__PURE__ */ s("group", { ref: t, children: e });
794
+ }, C = (e, n) => (e == null ? void 0 : e.type) === n, nt = (e) => null, K = ({ children: e, inside: n }) => n ? /* @__PURE__ */ s(_, { children: e }) : /* @__PURE__ */ s(Ve, { children: e }), tt = ({
795
+ children: e,
796
+ insideScreenSpaceUI: n,
797
+ objectRef: t,
798
+ renderOrder: A,
799
+ settings: o
800
+ }) => /* @__PURE__ */ s(K, { inside: n, children: /* @__PURE__ */ s(rt, { settings: o, renderOrder: A, objectRef: t, children: e }) }), rt = ({
801
+ children: e,
802
+ objectRef: n,
803
+ renderOrder: t,
804
+ settings: A
805
+ }) => {
806
+ const o = re();
807
+ if (!A.enabled || !A.visible) return null;
808
+ const r = Se({ transform: A, parentSize: o });
809
+ return /* @__PURE__ */ s(
810
+ "group",
811
+ {
812
+ ref: n,
813
+ position: r.center,
814
+ rotation: r.rotation,
815
+ scale: r.size,
816
+ renderOrder: t ?? A.renderOrder,
817
+ children: e
818
+ }
819
+ );
820
+ }, At = ({
821
+ anchor: e,
822
+ children: n,
823
+ insideScreenSpaceUI: t,
824
+ objectRef: A,
825
+ renderOrder: o,
826
+ settings: r
827
+ }) => /* @__PURE__ */ s(K, { inside: t, children: /* @__PURE__ */ s(
828
+ ot,
829
+ {
830
+ anchor: e,
831
+ settings: r,
832
+ renderOrder: o,
833
+ objectRef: A,
834
+ children: n
835
+ }
836
+ ) }), ot = ({
837
+ anchor: e,
838
+ children: n,
839
+ objectRef: t,
840
+ renderOrder: A,
841
+ settings: o
842
+ }) => {
843
+ const r = tn({ targetFps: 24 }), { size: l } = ne(), a = re(), d = w(null), c = w(new P()), f = w({
844
+ pos: new P(),
845
+ prevRaw: new P(),
846
+ dxHat: new P(),
847
+ initialized: !1
848
+ }), u = w(!1), h = w({ x: 0, y: 0, z: 0, visibility: 0 }), v = w({ x: 0, y: 0 }), g = r ? nn(
849
+ e.target,
850
+ r.landmarks,
851
+ e.customAnchorPoint,
852
+ h.current,
853
+ r.mirrored
854
+ ) : null, L = r ? r.mirrored ? r.pose.rotation.z : -r.pose.rotation.z : 0, y = g ? an({ point: g, viewportSize: l, target: v.current }) : null, I = y ? Se({
855
+ transform: {
856
+ ...o,
857
+ position: {
858
+ x: y.x + o.position.x + e.offset.x,
859
+ y: y.y + o.position.y + e.offset.y
860
+ }
861
+ },
862
+ parentSize: a
863
+ }) : null;
864
+ return V((M, p) => {
865
+ const S = d.current;
866
+ if (S) {
867
+ if (S.visible = !!(I && o.enabled && o.visible), !I) {
868
+ u.current = !1, f.current.initialized = !1;
869
+ return;
870
+ }
871
+ c.current.set(I.center[0], I.center[1], e.offset.z), e.smoothing > 0 ? ($e(
872
+ f.current,
873
+ c.current,
874
+ u.current ? p : 0,
875
+ e.smoothing
876
+ ), S.position.copy(f.current.pos)) : S.position.copy(c.current), u.current = !0;
877
+ }
878
+ }), /* @__PURE__ */ s(
879
+ "group",
880
+ {
881
+ ref: (M) => {
882
+ d.current = M, t == null || t(M);
883
+ },
884
+ rotation: [
885
+ (I == null ? void 0 : I.rotation[0]) ?? 0,
886
+ (I == null ? void 0 : I.rotation[1]) ?? 0,
887
+ ((I == null ? void 0 : I.rotation[2]) ?? 0) + (e.followFaceRoll ? L : 0)
888
+ ],
889
+ scale: [
890
+ o.size.width / 100 * o.scale2D.x,
891
+ o.size.height / 100 * o.scale2D.y,
892
+ 1
893
+ ],
894
+ renderOrder: A ?? o.renderOrder,
895
+ children: n
896
+ }
897
+ );
898
+ }, it = ({
899
+ editorMode: e = !1,
900
+ faceMeshMaterialOverrides: n,
901
+ fallback: t = nt,
902
+ insideScreenSpaceUI: A = !1,
903
+ objectId: o,
904
+ onComponentChange: r,
905
+ renderLayer: l,
906
+ renderOrder: a,
907
+ store: d
908
+ }) => {
909
+ const c = rn(), f = An(), u = d.objects[o];
910
+ if (!u || !u.enabled) return null;
911
+ const h = Re(d, o).filter((i) => i.enabled), v = h.find((i) => i.type === "Transform"), g = h.find((i) => i.type === "ScreenTransform"), L = h.find((i) => i.type === "ScreenImage"), y = h.find((i) => i.type === "ScreenText"), I = h.find((i) => i.type === "ScreenShape"), M = h.find((i) => i.type === "MeshRenderer"), p = h.find((i) => i.type === "FaceMeshRenderer"), S = h.find((i) => i.type === "Light"), B = h.find((i) => i.type === "LookAt"), Y = h.find((i) => i.type === "PinToMesh"), X = h.find((i) => i.type === "TrackingAnchor"), m = Ye(d, o).map((i) => /* @__PURE__ */ s(
912
+ it,
913
+ {
914
+ objectId: i.id,
915
+ store: d,
916
+ editorMode: e,
917
+ renderOrder: a,
918
+ renderLayer: l,
919
+ onComponentChange: r,
920
+ fallback: t,
921
+ faceMeshMaterialOverrides: n,
922
+ insideScreenSpaceUI: A || !!g
923
+ },
924
+ i.id
925
+ ));
926
+ if (C(v, "Transform") && C(S, "Light"))
927
+ return /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ T("group", { ref: (i) => c(o, i), children: [
928
+ /* @__PURE__ */ s(qn, { settings: S.settings, transform: v.settings }),
929
+ m
930
+ ] }) });
931
+ if (C(v, "Transform") && C(M, "MeshRenderer")) {
932
+ const i = C(B, "LookAt") ? B.settings : ue("LookAt", o).settings, Q = i.inheritChildren ? m : null, Z = i.inheritChildren ? null : m;
933
+ return /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { ref: (W) => c(o, W), children: /* @__PURE__ */ s(
934
+ We,
935
+ {
936
+ target: C(Y, "PinToMesh") ? f(Y.settings.targetObjectId) : null,
937
+ settings: C(Y, "PinToMesh") ? Y.settings : ue("PinToMesh", o).settings,
938
+ children: /* @__PURE__ */ T(
939
+ N,
940
+ {
941
+ value: v.settings,
942
+ onChange: r ? (W) => r({ ...v, settings: W }) : void 0,
943
+ children: [
944
+ /* @__PURE__ */ T(
945
+ $n,
946
+ {
947
+ target: C(B, "LookAt") ? f(B.settings.targetObjectId) : null,
948
+ settings: i,
949
+ children: [
950
+ /* @__PURE__ */ s(Fe, { value: M.settings, renderOrder: a }),
951
+ Q
952
+ ]
953
+ }
954
+ ),
955
+ Z
956
+ ]
957
+ }
958
+ )
959
+ }
960
+ ) }) });
961
+ }
962
+ if (C(p, "FaceMeshRenderer"))
963
+ return /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ T("group", { ref: (i) => c(o, i), children: [
964
+ /* @__PURE__ */ s(
965
+ Xe,
966
+ {
967
+ value: p.settings,
968
+ materialOverride: n == null ? void 0 : n[p.id],
969
+ transform: C(v, "Transform") ? v.settings : void 0
970
+ }
971
+ ),
972
+ m
973
+ ] }) });
974
+ if (C(v, "Transform")) {
975
+ if (C(X, "TrackingAnchor")) {
976
+ const i = X.settings;
977
+ return /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s(en, { followFaceRoll: i.followFaceRoll, children: /* @__PURE__ */ s(
978
+ _e,
979
+ {
980
+ target: i.target,
981
+ customAnchorPoint: i.customAnchorPoint,
982
+ offset: [i.offset.x, i.offset.y, i.offset.z],
983
+ smoothing: i.smoothing,
984
+ children: /* @__PURE__ */ s(
985
+ N,
986
+ {
987
+ objectRef: (Q) => c(o, Q),
988
+ value: v.settings,
989
+ children: m
990
+ }
991
+ )
992
+ }
993
+ ) }) });
994
+ }
995
+ return /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { children: /* @__PURE__ */ s(
996
+ N,
997
+ {
998
+ objectRef: (i) => c(o, i),
999
+ value: v.settings,
1000
+ onChange: r ? (i) => r({ ...v, settings: i }) : void 0,
1001
+ children: m
1002
+ }
1003
+ ) }) });
1004
+ }
1005
+ if (C(g, "ScreenTransform") && C(L, "ScreenImage")) {
1006
+ const i = Je({
1007
+ screenSpaceUI: { enabled: !0 },
1008
+ screenImage: {
1009
+ ...L.settings,
1010
+ screenTransform: g.settings
1011
+ }
1012
+ });
1013
+ return i.shouldRender ? /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { renderOrder: a, children: /* @__PURE__ */ T(K, { inside: A, children: [
1014
+ /* @__PURE__ */ s(
1015
+ Pn,
1016
+ {
1017
+ ...i.props,
1018
+ renderOrder: a ?? i.props.renderOrder,
1019
+ onScreenTransformChange: r ? (Q) => r({ ...g, settings: Q }) : void 0
1020
+ }
1021
+ ),
1022
+ m
1023
+ ] }) }) }) : null;
1024
+ }
1025
+ if (C(g, "ScreenTransform") && C(y, "ScreenText")) {
1026
+ const i = Pe({
1027
+ screenSpaceUI: { enabled: !0 },
1028
+ screenText: {
1029
+ ...y.settings,
1030
+ screenTransform: g.settings
1031
+ }
1032
+ });
1033
+ return i.shouldRender ? /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { renderOrder: a, children: /* @__PURE__ */ T(K, { inside: A, children: [
1034
+ /* @__PURE__ */ s(
1035
+ jn,
1036
+ {
1037
+ ...i.props,
1038
+ renderOrder: a ?? i.props.renderOrder,
1039
+ onScreenTransformChange: r ? (Q) => r({ ...g, settings: Q }) : void 0
1040
+ }
1041
+ ),
1042
+ m
1043
+ ] }) }) }) : null;
1044
+ }
1045
+ return C(g, "ScreenTransform") && C(I, "ScreenShape") ? /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { ref: (i) => c(o, i), renderOrder: a, children: /* @__PURE__ */ T(K, { inside: A, children: [
1046
+ /* @__PURE__ */ s(
1047
+ ze,
1048
+ {
1049
+ name: u.name,
1050
+ settings: I.settings,
1051
+ transform: g.settings,
1052
+ renderOrder: a,
1053
+ onScreenTransformChange: r ? (i) => r({ ...g, settings: i }) : void 0
1054
+ }
1055
+ ),
1056
+ m
1057
+ ] }) }) }) : C(g, "ScreenTransform") ? C(X, "TrackingAnchor") ? /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { children: /* @__PURE__ */ s(
1058
+ At,
1059
+ {
1060
+ anchor: X.settings,
1061
+ settings: g.settings,
1062
+ renderOrder: a,
1063
+ insideScreenSpaceUI: A,
1064
+ objectRef: (i) => c(o, i),
1065
+ children: m
1066
+ }
1067
+ ) }) }) : /* @__PURE__ */ s(D, { layer: l, children: /* @__PURE__ */ s("group", { children: /* @__PURE__ */ s(
1068
+ tt,
1069
+ {
1070
+ settings: g.settings,
1071
+ renderOrder: a,
1072
+ insideScreenSpaceUI: A,
1073
+ objectRef: (i) => c(o, i),
1074
+ children: m
1075
+ }
1076
+ ) }) }) : e ? /* @__PURE__ */ T(_, { children: [
1077
+ m,
1078
+ t(
1079
+ `Object "${u.name}" has unsupported components: ${h.map((i) => i.type).join(", ")}`
1080
+ )
1081
+ ] }) : m.length ? /* @__PURE__ */ s(_, { children: m }) : null;
1082
+ }, Qt = ({ layers: e }) => {
1083
+ const { camera: n, gl: t, raycaster: A, scene: o } = ne(), { session: r } = on(), l = te(
1084
+ () => Ge({ renderer: t, scene: o, camera: n, layers: e }),
1085
+ [n, t, e, o]
1086
+ );
1087
+ return V(l, 1), U(() => {
1088
+ const a = A.layers.mask;
1089
+ return e.forEach((d) => A.layers.enable(d)), () => {
1090
+ A.layers.mask = a;
1091
+ };
1092
+ }, [e, A]), U(() => (r._setR3FState({ renderer: t, scene: o, camera: n, renderFrame: l }), () => r._setR3FState({ renderer: t, scene: o, camera: n })), [n, t, l, o, r]), null;
1093
+ };
1094
+ export {
1095
+ qn as L,
1096
+ D as R,
1097
+ Pn as S,
1098
+ Bn as a,
1099
+ jn as b,
1100
+ ee as c,
1101
+ $n as d,
1102
+ it as e,
1103
+ Qt as f
1104
+ };