@vincentt-xr/sdk 2.0.0-alpha.1 → 2.0.0-alpha.2

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 (352) hide show
  1. package/GROUNDING.md +1588 -20
  2. package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-gLMKiVwJ.js → DebuggerUI-Cq28c18s.js} +1 -1
  4. package/dist/FaceMeshRenderer-6t8OsQhK.js +1195 -0
  5. package/dist/FaceMeshRenderer-lQLhYIW-.cjs +155 -0
  6. package/dist/FaceRetouch-CDrL0pXg.js +551 -0
  7. package/dist/FaceRetouch-DtNl8-4e.cjs +134 -0
  8. package/dist/audio/AudioEngine.d.ts +3 -1
  9. package/dist/audio/AudioPlayer.d.ts +29 -0
  10. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  11. package/dist/audio/index.d.ts +2 -0
  12. package/dist/components/Axes/index.d.ts +6 -0
  13. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +17 -0
  14. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +17 -1
  15. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  16. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  17. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +9 -0
  18. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +2 -0
  19. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  20. package/dist/components/FaceMesh/deform.d.ts +3 -0
  21. package/dist/components/FaceMesh/index.d.ts +5 -0
  22. package/dist/components/FaceMesh/material/defaults.d.ts +70 -0
  23. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  24. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  25. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  26. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  27. package/dist/components/FaceMesh/material/types.d.ts +2 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +5 -6
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -8
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +1 -1
  35. package/dist/components/HandJoints2D/index.d.ts +1 -1
  36. package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
  37. package/dist/components/HandTracking2D/index.d.ts +1 -1
  38. package/dist/components/HandTracking2DController/index.d.ts +1 -1
  39. package/dist/components/HandTracking3D/index.d.ts +1 -1
  40. package/dist/components/LightObject/index.d.ts +20 -0
  41. package/dist/components/LookAt/index.d.ts +23 -0
  42. package/dist/components/MeshRenderer/index.d.ts +58 -0
  43. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  44. package/dist/components/PinToMesh/index.d.ts +47 -0
  45. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  46. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  47. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  48. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  49. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  50. package/dist/components/Screen2D/index.d.ts +5 -0
  51. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  52. package/dist/components/ScreenGlass/index.d.ts +5 -0
  53. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  54. package/dist/components/ScreenGlass/types.d.ts +10 -0
  55. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  56. package/dist/components/ScreenGradient/index.d.ts +5 -0
  57. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGradient/types.d.ts +19 -0
  59. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  60. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  61. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  62. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  63. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  64. package/dist/components/ScreenImage/fit.d.ts +52 -0
  65. package/dist/components/ScreenImage/index.d.ts +8 -87
  66. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  67. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  68. package/dist/components/ScreenImage/source.d.ts +16 -0
  69. package/dist/components/ScreenImage/types.d.ts +37 -0
  70. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  71. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  72. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  73. package/dist/components/ScreenShape/index.d.ts +5 -0
  74. package/dist/components/ScreenShape/types.d.ts +41 -0
  75. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  76. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  77. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  78. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  79. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  80. package/dist/components/ScreenText/constants.d.ts +5 -0
  81. package/dist/components/ScreenText/index.d.ts +6 -20
  82. package/dist/components/ScreenText/types.d.ts +31 -0
  83. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  84. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  85. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  86. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  87. package/dist/components/TextLabel/alignment.d.ts +4 -0
  88. package/dist/components/TextLabel/bend.d.ts +9 -0
  89. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  90. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  91. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  92. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  93. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  94. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  95. package/dist/components/TextLabel/constants.d.ts +2 -0
  96. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  97. package/dist/components/TextLabel/index.d.ts +2 -161
  98. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  99. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  100. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  101. package/dist/components/TextLabel/types.d.ts +227 -0
  102. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  103. package/dist/components/Transform3D/index.d.ts +30 -0
  104. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  105. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  106. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  107. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  108. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  109. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  110. package/dist/components/XRViewport/constants.d.ts +24 -0
  111. package/dist/components/XRViewport/contexts.d.ts +6 -0
  112. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  113. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  114. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  115. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  116. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  117. package/dist/components/XRViewport/index.d.ts +3 -118
  118. package/dist/components/XRViewport/layout.d.ts +16 -0
  119. package/dist/components/XRViewport/slots.d.ts +16 -0
  120. package/dist/components/XRViewport/types.d.ts +89 -0
  121. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  122. package/dist/components/index.d.ts +12 -0
  123. package/dist/contexts-BKvTIayr.cjs +1 -0
  124. package/dist/contexts-Bk5zz_VR.js +214 -0
  125. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  126. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  127. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  128. package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
  129. package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
  130. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
  131. package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
  132. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  133. package/dist/debug-ui/index.d.ts +25 -2
  134. package/dist/debug-ui/layer-panel/index.d.ts +3 -2
  135. package/dist/debug-ui/media-source/index.d.ts +2 -0
  136. package/dist/debug-ui/media-source/session.d.ts +12 -0
  137. package/dist/debug-ui/media-source.cjs +1 -1
  138. package/dist/debug-ui/media-source.js +6 -4
  139. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  140. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  141. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  142. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  143. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  144. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  145. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  146. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  147. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  148. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  149. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  150. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  151. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  152. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  153. package/dist/debug-ui/screen-image-settings/index.d.ts +4 -2
  154. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  155. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  156. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  157. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  158. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  159. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  160. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
  161. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  162. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  163. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  164. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  165. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  166. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  167. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  168. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  169. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  170. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  172. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  173. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  174. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  175. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  176. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  177. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  178. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  179. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  180. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  181. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
  182. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  183. package/dist/debug-ui.cjs +3 -13
  184. package/dist/debug-ui.js +7896 -5098
  185. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  186. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  187. package/dist/entries/all.d.ts +1 -0
  188. package/dist/entries/core.d.ts +53 -6
  189. package/dist/entries/face-effects.d.ts +10 -8
  190. package/dist/entries/internal.d.ts +1 -1
  191. package/dist/entries/low-level.d.ts +18 -4
  192. package/dist/entries/scene-object.d.ts +10 -0
  193. package/dist/entries/tracking.d.ts +25 -2
  194. package/dist/face-action/index.d.ts +34 -0
  195. package/dist/face-attribute-expression/index.d.ts +10 -0
  196. package/dist/face-effects.cjs +1 -342
  197. package/dist/face-effects.js +1391 -2767
  198. package/dist/face-info/blendshapes.d.ts +3 -0
  199. package/dist/face-info/derive.d.ts +8 -0
  200. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  201. package/dist/face-info/getFaceInfo.d.ts +8 -0
  202. package/dist/face-info/index.d.ts +8 -0
  203. package/dist/face-info/landmarks.d.ts +21 -0
  204. package/dist/face-info/types.d.ts +52 -0
  205. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  206. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  207. package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
  208. package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
  209. package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
  210. package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
  211. package/dist/hooks/faceResults.d.ts +1 -1
  212. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  213. package/dist/hooks/useFaceAction.d.ts +3 -0
  214. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  215. package/dist/hooks/useFaceDetection.d.ts +18 -0
  216. package/dist/hooks/useFaceInfo.d.ts +7 -0
  217. package/dist/hooks/useFaceInfos.d.ts +15 -0
  218. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  219. package/dist/hooks/useFrameCapture.d.ts +18 -0
  220. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  221. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  222. package/dist/hooks/useTrackerContext.d.ts +2 -2
  223. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  224. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  225. package/dist/index-82aENaRq.cjs +1 -0
  226. package/dist/{index-BGNbrc4C.js → index-BgQAX8rs.js} +213 -125
  227. package/dist/index-CEc1CAmB.cjs +1 -0
  228. package/dist/index-CTHeBQOs.js +178 -0
  229. package/dist/index-D4bLzBr6.cjs +1 -0
  230. package/dist/index-DSpzjuqd.cjs +1 -0
  231. package/dist/index-Di70KWuY.js +2049 -0
  232. package/dist/index-DzEzkBIH.cjs +17 -0
  233. package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
  234. package/dist/index-UC0Ux38E.js +111 -0
  235. package/dist/{internal-Cae1ps15.js → internal-DuMPpcbp.js} +86 -80
  236. package/dist/internal-i2JkM85N.cjs +1 -0
  237. package/dist/internal.cjs +1 -1
  238. package/dist/internal.js +2 -2
  239. package/dist/low-level.cjs +1 -1
  240. package/dist/low-level.js +1229 -86
  241. package/dist/main.cjs +1 -73
  242. package/dist/main.js +545 -1693
  243. package/dist/material/MaterialFill.d.ts +20 -0
  244. package/dist/material/MeshMaterial.d.ts +14 -0
  245. package/dist/material/index.d.ts +2 -0
  246. package/dist/models/Body/index.d.ts +1 -1
  247. package/dist/models/Face/index.d.ts +1 -0
  248. package/dist/models/Face/rotation.d.ts +3 -0
  249. package/dist/render/renderGroups.d.ts +47 -0
  250. package/dist/render/renderPasses.d.ts +18 -0
  251. package/dist/renderGroups-C9QJrAXu.js +152 -0
  252. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  253. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  254. package/dist/renderLayers-zrK2pv5O.js +13 -0
  255. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  256. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  257. package/dist/scene-object/index.d.ts +146 -0
  258. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  259. package/dist/scene-object.cjs +1 -0
  260. package/dist/scene-object.js +40 -0
  261. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  262. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  263. package/dist/screen2d/coordinates.d.ts +87 -0
  264. package/dist/screen2d/index.d.ts +3 -0
  265. package/dist/screen2d/screenTransform.d.ts +47 -0
  266. package/dist/screen2d/smoothing.d.ts +5 -0
  267. package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
  268. package/dist/{selectors-CXd_x-6t.js → selectors-Dw3C-gSk.js} +3 -3
  269. package/dist/services/MetricsCollector/index.d.ts +7 -1
  270. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  271. package/dist/session-BChR4TgK.cjs +31 -0
  272. package/dist/session-C1StwN0f.js +363 -0
  273. package/dist/texture/animatedTexture.d.ts +61 -0
  274. package/dist/texture/animationMath.d.ts +8 -0
  275. package/dist/texture/sourceResolver.d.ts +30 -0
  276. package/dist/tracking.cjs +1 -1
  277. package/dist/tracking.js +580 -321
  278. package/dist/types/face.d.ts +1 -13
  279. package/dist/types/index.d.ts +0 -1
  280. package/dist/types/nodes.d.ts +2 -1
  281. package/dist/types/session.d.ts +2 -0
  282. package/dist/types/tracking.d.ts +8 -2
  283. package/dist/types/util-types.d.ts +1 -1
  284. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  285. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  286. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  287. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  288. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  289. package/dist/utils/integrity.d.ts +4 -25
  290. package/dist/utils/landmarkBounds.d.ts +1 -1
  291. package/dist/utils/logger.d.ts +2 -2
  292. package/docs/MIGRATION_GUIDE.md +589 -0
  293. package/docs/SDK_DOCUMENTATION.md +1155 -0
  294. package/docs/api/audio.mdx +36 -0
  295. package/docs/api/behavior-components.mdx +164 -0
  296. package/docs/api/capture-recording.mdx +103 -0
  297. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  298. package/docs/api/face-actions.mdx +104 -0
  299. package/docs/api/face-attribute-expression.mdx +87 -0
  300. package/docs/api/face-binding-anchors.mdx +53 -0
  301. package/docs/api/face-effects.mdx +19 -0
  302. package/docs/api/face-info.mdx +112 -0
  303. package/docs/api/face-mesh.mdx +98 -0
  304. package/docs/api/face-painting.mdx +33 -0
  305. package/docs/api/face-retouching.mdx +73 -0
  306. package/docs/api/material-render-state.mdx +132 -0
  307. package/docs/api/runtime-3d.mdx +311 -0
  308. package/docs/api/scene-object-store.mdx +213 -0
  309. package/docs/api/screen-image.mdx +41 -0
  310. package/docs/api/screen-shape.mdx +64 -0
  311. package/docs/api/screen-space-coordinates.mdx +41 -0
  312. package/docs/api/screen-text.mdx +39 -0
  313. package/docs/api/texture-sources.mdx +55 -0
  314. package/docs/api/trackers.mdx +46 -0
  315. package/docs/docs.json +70 -0
  316. package/docs/examples/scene-object-recipes.mdx +194 -0
  317. package/docs/guides/harness-debug-ui.mdx +139 -0
  318. package/docs/inspector/hierarchy-panel.mdx +51 -0
  319. package/docs/inspector/object-inspector-panel.mdx +51 -0
  320. package/docs/introduction.mdx +121 -0
  321. package/docs/scene-objects/overview.mdx +127 -0
  322. package/docs/scene-objects/render-groups.mdx +77 -0
  323. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  324. package/docs/texture-api-consumer.md +58 -0
  325. package/package.json +37 -7
  326. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  327. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  328. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  329. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  330. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  331. package/dist/defaults-BLpcN3pG.cjs +0 -1
  332. package/dist/defaults-LtY4M7dg.js +0 -55
  333. package/dist/index-BXyObVHF.cjs +0 -1
  334. package/dist/index-CY3bUAcW.js +0 -12
  335. package/dist/index-C_Duh13c.cjs +0 -1
  336. package/dist/index-D8fpPQkC.cjs +0 -1
  337. package/dist/index-DxshgBu0.cjs +0 -1
  338. package/dist/index-O-2crZ3M.js +0 -1102
  339. package/dist/internal-BjyhBP8i.cjs +0 -1
  340. package/dist/modules/XRClient/index.d.ts +0 -9
  341. package/dist/modules/index.d.ts +0 -1
  342. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  343. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  344. package/dist/services/ApiService.d.ts +0 -12
  345. package/dist/types/client.d.ts +0 -3
  346. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  347. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  348. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  349. package/dist/useXRModel-BMJE1hrk.js +0 -28
  350. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  351. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  352. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
@@ -1,317 +0,0 @@
1
- import { l as z } from "./index-CY3bUAcW.js";
2
- import { jsx as o, jsxs as l } from "react/jsx-runtime";
3
- import { createPortal as L } from "react-dom";
4
- import { useState as p, useRef as R, useMemo as W, useEffect as b } from "react";
5
- import { c as i, X as $ } from "./x-Co8jPhP0.js";
6
- const w = (t, r) => new URL(`/assets/sdk/debug-ui/v1/${t}/${r}`, z.assetStorageEndpoint).href, v = (t) => t.replace(/\.[^.]+$/, "").replace(/[_-]+/g, " ").replace(/\s+/g, " ").trim().replace(/\b\w/g, (r) => r.toUpperCase()), E = [
7
- "person_fullbody.mp4",
8
- "person_looking.mp4",
9
- "person_shaking_head.mp4",
10
- "person_thumbUp.mp4",
11
- "two_people_smiling.mp4"
12
- ], D = [
13
- "person_fist_sign.jpg",
14
- "person_fullbody.jpg",
15
- "person_peace_sign.jpg",
16
- "person_portrait.jpg",
17
- "person_side_portrait.jpg",
18
- "three_people_smiling.jpg",
19
- "two_people_smiling.jpg"
20
- ], N = (t, r) => ({
21
- id: `sdk-video-${r + 1}`,
22
- kind: "video",
23
- label: v(t),
24
- url: w("videos", t)
25
- }), P = (t, r) => ({
26
- id: `sdk-image-${r + 1}`,
27
- kind: "image",
28
- label: v(t),
29
- url: w("images", t)
30
- }), V = E.map(N), U = D.map(P), he = [
31
- { id: "webcam", kind: "webcam", label: "Webcam" },
32
- ...V,
33
- ...U
34
- ];
35
- /**
36
- * @license lucide-react v1.17.0 - ISC
37
- *
38
- * This source code is licensed under the ISC license.
39
- * See the LICENSE file in the root directory of this source tree.
40
- */
41
- const F = [
42
- [
43
- "path",
44
- {
45
- d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
46
- key: "18u6gg"
47
- }
48
- ],
49
- ["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
50
- ], B = i("camera", F);
51
- /**
52
- * @license lucide-react v1.17.0 - ISC
53
- *
54
- * This source code is licensed under the ISC license.
55
- * See the LICENSE file in the root directory of this source tree.
56
- */
57
- const K = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], O = i("chevron-down", K);
58
- /**
59
- * @license lucide-react v1.17.0 - ISC
60
- *
61
- * This source code is licensed under the ISC license.
62
- * See the LICENSE file in the root directory of this source tree.
63
- */
64
- const X = [
65
- ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
66
- ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
67
- ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
68
- ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
69
- ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
70
- ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
71
- ], A = i("grip-vertical", X);
72
- /**
73
- * @license lucide-react v1.17.0 - ISC
74
- *
75
- * This source code is licensed under the ISC license.
76
- * See the LICENSE file in the root directory of this source tree.
77
- */
78
- const G = [
79
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
80
- ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
81
- ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
82
- ], H = i("image", G);
83
- /**
84
- * @license lucide-react v1.17.0 - ISC
85
- *
86
- * This source code is licensed under the ISC license.
87
- * See the LICENSE file in the root directory of this source tree.
88
- */
89
- const T = [
90
- ["path", { d: "M4 5h16", key: "1tepv9" }],
91
- ["path", { d: "M4 12h16", key: "1lakjw" }],
92
- ["path", { d: "M4 19h16", key: "1djgab" }]
93
- ], Y = i("menu", T);
94
- /**
95
- * @license lucide-react v1.17.0 - ISC
96
- *
97
- * This source code is licensed under the ISC license.
98
- * See the LICENSE file in the root directory of this source tree.
99
- */
100
- const q = [
101
- [
102
- "path",
103
- {
104
- d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
105
- key: "ftymec"
106
- }
107
- ],
108
- ["rect", { x: "2", y: "6", width: "14", height: "12", rx: "2", key: "158x01" }]
109
- ], J = i("video", q), Q = (t) => t === "webcam" ? "📷 " : t === "image" ? "🖼 " : "▶ ", Z = {
110
- position: "fixed",
111
- zIndex: 2e4,
112
- pointerEvents: "none"
113
- }, _ = {
114
- pointerEvents: "auto",
115
- border: "1px solid rgba(255, 255, 255, 0.12)",
116
- background: "rgba(8, 15, 28, 0.58)",
117
- boxShadow: "0 12px 32px rgba(0, 0, 0, 0.28)",
118
- backdropFilter: "blur(20px) saturate(1.15)",
119
- WebkitBackdropFilter: "blur(20px) saturate(1.15)",
120
- color: "#f8fafc",
121
- display: "flex"
122
- }, ee = {
123
- ..._,
124
- width: 34,
125
- height: 34,
126
- borderRadius: 17,
127
- alignItems: "center",
128
- justifyContent: "center",
129
- cursor: "pointer",
130
- transition: "transform 150ms ease"
131
- }, te = {
132
- ..._,
133
- flexDirection: "column",
134
- borderRadius: 12,
135
- overflow: "hidden",
136
- padding: 4,
137
- gap: 4
138
- }, oe = {
139
- display: "flex",
140
- alignItems: "center",
141
- gap: 3
142
- }, ne = {
143
- width: 1,
144
- height: 12,
145
- background: "rgba(255, 255, 255, 0.12)",
146
- margin: "0 3px"
147
- }, re = {
148
- display: "flex",
149
- width: 16,
150
- height: 24,
151
- alignItems: "center",
152
- justifyContent: "center",
153
- cursor: "grab",
154
- color: "rgba(148, 163, 184, 0.8)",
155
- flex: "0 0 auto"
156
- }, x = (t = !1) => ({
157
- display: "flex",
158
- width: 24,
159
- height: 24,
160
- alignItems: "center",
161
- justifyContent: "center",
162
- borderRadius: 8,
163
- border: `1px solid ${t ? "rgba(255, 255, 255, 0.12)" : "transparent"}`,
164
- background: t ? "rgba(255, 255, 255, 0.08)" : "transparent",
165
- color: t ? "#f8fafc" : "rgba(226, 232, 240, 0.72)",
166
- cursor: "pointer",
167
- flex: "0 0 auto",
168
- transition: "background 120ms ease, color 120ms ease"
169
- }), ie = {
170
- position: "relative",
171
- display: "flex",
172
- alignItems: "center"
173
- }, se = {
174
- width: "100%",
175
- minWidth: 140,
176
- height: 24,
177
- borderRadius: 8,
178
- border: "1px solid rgba(255, 255, 255, 0.10)",
179
- background: "rgba(15, 23, 42, 0.65)",
180
- color: "#f8fafc",
181
- fontSize: 11,
182
- outline: "none",
183
- paddingLeft: 7,
184
- paddingRight: 20,
185
- appearance: "none",
186
- cursor: "pointer"
187
- }, ae = {
188
- pointerEvents: "none",
189
- position: "absolute",
190
- right: 5,
191
- top: 0,
192
- bottom: 0,
193
- display: "flex",
194
- alignItems: "center",
195
- color: "rgba(148, 163, 184, 0.9)"
196
- }, ce = {
197
- height: 24,
198
- display: "flex",
199
- alignItems: "center",
200
- padding: "0 8px",
201
- borderRadius: 8,
202
- border: "1px solid rgba(255, 255, 255, 0.08)",
203
- background: "rgba(255, 255, 255, 0.04)",
204
- color: "rgba(226, 232, 240, 0.72)",
205
- fontSize: 11
206
- }, k = { width: 14, height: 14 }, me = ({
207
- value: t,
208
- onChange: r,
209
- sources: s,
210
- style: S
211
- }) => {
212
- const [M, g] = p(!1), [u, j] = p({ x: 16, y: 16 }), [a, h] = p(t.kind), c = R(null), m = W(
213
- () => ({
214
- webcam: s.filter((e) => e.kind === "webcam"),
215
- image: s.filter((e) => e.kind === "image"),
216
- video: s.filter((e) => e.kind === "video")
217
- }),
218
- [s]
219
- ), y = m[a];
220
- b(() => {
221
- h(t.kind);
222
- }, [t.kind]);
223
- const C = (e) => {
224
- h(e);
225
- const n = m[e][0];
226
- n && r(n);
227
- };
228
- b(() => {
229
- const e = (d) => {
230
- c.current && j({
231
- x: Math.max(8, d.clientX - c.current.x),
232
- y: Math.max(8, d.clientY - c.current.y)
233
- });
234
- }, n = () => {
235
- c.current = null, document.body.classList.remove("select-none");
236
- };
237
- return window.addEventListener("pointermove", e), window.addEventListener("pointerup", n), () => {
238
- window.removeEventListener("pointermove", e), window.removeEventListener("pointerup", n);
239
- };
240
- }, []);
241
- const f = (e) => {
242
- const n = e.currentTarget.getBoundingClientRect();
243
- c.current = {
244
- x: e.clientX - n.left,
245
- y: e.clientY - n.top
246
- }, document.body.classList.add("select-none"), e.currentTarget.setPointerCapture(e.pointerId);
247
- }, I = () => y.length === 0 ? /* @__PURE__ */ o("div", { style: ce, children: a === "webcam" ? "No camera source" : a === "image" ? "No image preview" : "No video preview" }) : /* @__PURE__ */ l("div", { style: ie, children: [
248
- /* @__PURE__ */ o(
249
- "select",
250
- {
251
- value: t.id,
252
- onChange: (e) => {
253
- const n = s.find((d) => d.id === e.target.value);
254
- n && r(n);
255
- },
256
- style: se,
257
- children: y.map((e) => /* @__PURE__ */ l("option", { value: e.id, children: [
258
- Q(a),
259
- e.label
260
- ] }, e.id))
261
- }
262
- ),
263
- /* @__PURE__ */ o("div", { style: ae, children: /* @__PURE__ */ o("span", { style: { width: 10, height: 10 }, children: /* @__PURE__ */ o(O, { size: 10, strokeWidth: 1.8 }) }) })
264
- ] });
265
- return typeof document > "u" ? null : L(
266
- /* @__PURE__ */ o("div", { style: { ...Z, left: u.x, top: u.y, ...S }, children: M ? (
267
- // --- Expanded State ---
268
- /* @__PURE__ */ l("div", { style: te, children: [
269
- /* @__PURE__ */ l("div", { style: oe, children: [
270
- /* @__PURE__ */ o("div", { onPointerDown: f, style: re, title: "Drag to move", children: /* @__PURE__ */ o(A, { size: 11, strokeWidth: 2 }) }),
271
- /* @__PURE__ */ o(
272
- "button",
273
- {
274
- type: "button",
275
- onClick: () => g(!1),
276
- style: x(!1),
277
- title: "Close Menu",
278
- children: /* @__PURE__ */ o("span", { style: k, children: /* @__PURE__ */ o($, { size: 14, strokeWidth: 1.8 }) })
279
- }
280
- ),
281
- /* @__PURE__ */ o("div", { style: ne }),
282
- ["webcam", "image", "video"].map((e) => /* @__PURE__ */ o(
283
- "button",
284
- {
285
- type: "button",
286
- onClick: () => C(e),
287
- style: x(a === e),
288
- title: e.charAt(0).toUpperCase() + e.slice(1),
289
- children: /* @__PURE__ */ o("span", { style: k, children: e === "webcam" ? /* @__PURE__ */ o(B, { size: 14, strokeWidth: 1.8 }) : e === "image" ? /* @__PURE__ */ o(H, { size: 14, strokeWidth: 1.8 }) : /* @__PURE__ */ o(J, { size: 14, strokeWidth: 1.8 }) })
290
- },
291
- e
292
- ))
293
- ] }),
294
- I()
295
- ] })
296
- ) : (
297
- // --- Collapsed State (Minimal FAB) ---
298
- /* @__PURE__ */ o(
299
- "div",
300
- {
301
- style: ee,
302
- onClick: () => g(!0),
303
- onPointerDown: f,
304
- title: "Open Media Menu",
305
- children: /* @__PURE__ */ o("span", { style: { width: 16, height: 16 }, children: /* @__PURE__ */ o(Y, { size: 14, strokeWidth: 1.8 }) })
306
- }
307
- )
308
- ) }),
309
- document.body
310
- );
311
- };
312
- export {
313
- me as M,
314
- V as a,
315
- he as d,
316
- U as s
317
- };
@@ -1,31 +0,0 @@
1
- "use strict";const C=require("./index-D8fpPQkC.cjs"),t=require("react/jsx-runtime"),R=require("react-dom"),i=require("react"),s=require("./x-KC8E4Gaj.cjs"),b=(n,o)=>new URL(`/assets/sdk/debug-ui/v1/${n}/${o}`,C.libConfig.assetStorageEndpoint).href,k=n=>n.replace(/\.[^.]+$/,"").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,o=>o.toUpperCase()),$=["person_fullbody.mp4","person_looking.mp4","person_shaking_head.mp4","person_thumbUp.mp4","two_people_smiling.mp4"],z=["person_fist_sign.jpg","person_fullbody.jpg","person_peace_sign.jpg","person_portrait.jpg","person_side_portrait.jpg","three_people_smiling.jpg","two_people_smiling.jpg"],W=(n,o)=>({id:`sdk-video-${o+1}`,kind:"video",label:k(n),url:b("videos",n)}),E=(n,o)=>({id:`sdk-image-${o+1}`,kind:"image",label:k(n),url:b("images",n)}),w=$.map(W),j=z.map(E),V=[{id:"webcam",kind:"webcam",label:"Webcam"},...w,...j];/**
2
- * @license lucide-react v1.17.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const q=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],D=s.createLucideIcon("camera",q);/**
7
- * @license lucide-react v1.17.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const N=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],P=s.createLucideIcon("chevron-down",N);/**
12
- * @license lucide-react v1.17.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const U=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],F=s.createLucideIcon("grip-vertical",U);/**
17
- * @license lucide-react v1.17.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const B=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],K=s.createLucideIcon("image",B);/**
22
- * @license lucide-react v1.17.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const O=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],X=s.createLucideIcon("menu",O);/**
27
- * @license lucide-react v1.17.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const A=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],G=s.createLucideIcon("video",A),H=n=>n==="webcam"?"📷 ":n==="image"?"🖼 ":"▶ ",T={position:"fixed",zIndex:2e4,pointerEvents:"none"},v={pointerEvents:"auto",border:"1px solid rgba(255, 255, 255, 0.12)",background:"rgba(8, 15, 28, 0.58)",boxShadow:"0 12px 32px rgba(0, 0, 0, 0.28)",backdropFilter:"blur(20px) saturate(1.15)",WebkitBackdropFilter:"blur(20px) saturate(1.15)",color:"#f8fafc",display:"flex"},Y={...v,width:34,height:34,borderRadius:17,alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"transform 150ms ease"},J={...v,flexDirection:"column",borderRadius:12,overflow:"hidden",padding:4,gap:4},Q={display:"flex",alignItems:"center",gap:3},Z={width:1,height:12,background:"rgba(255, 255, 255, 0.12)",margin:"0 3px"},ee={display:"flex",width:16,height:24,alignItems:"center",justifyContent:"center",cursor:"grab",color:"rgba(148, 163, 184, 0.8)",flex:"0 0 auto"},x=(n=!1)=>({display:"flex",width:24,height:24,alignItems:"center",justifyContent:"center",borderRadius:8,border:`1px solid ${n?"rgba(255, 255, 255, 0.12)":"transparent"}`,background:n?"rgba(255, 255, 255, 0.08)":"transparent",color:n?"#f8fafc":"rgba(226, 232, 240, 0.72)",cursor:"pointer",flex:"0 0 auto",transition:"background 120ms ease, color 120ms ease"}),te={position:"relative",display:"flex",alignItems:"center"},ne={width:"100%",minWidth:140,height:24,borderRadius:8,border:"1px solid rgba(255, 255, 255, 0.10)",background:"rgba(15, 23, 42, 0.65)",color:"#f8fafc",fontSize:11,outline:"none",paddingLeft:7,paddingRight:20,appearance:"none",cursor:"pointer"},re={pointerEvents:"none",position:"absolute",right:5,top:0,bottom:0,display:"flex",alignItems:"center",color:"rgba(148, 163, 184, 0.9)"},oe={height:24,display:"flex",alignItems:"center",padding:"0 8px",borderRadius:8,border:"1px solid rgba(255, 255, 255, 0.08)",background:"rgba(255, 255, 255, 0.04)",color:"rgba(226, 232, 240, 0.72)",fontSize:11},f={width:14,height:14},ie=({value:n,onChange:o,sources:c,style:S})=>{const[_,p]=i.useState(!1),[u,M]=i.useState({x:16,y:16}),[a,g]=i.useState(n.kind),d=i.useRef(null),h=i.useMemo(()=>({webcam:c.filter(e=>e.kind==="webcam"),image:c.filter(e=>e.kind==="image"),video:c.filter(e=>e.kind==="video")}),[c]),y=h[a];i.useEffect(()=>{g(n.kind)},[n.kind]);const I=e=>{g(e);const r=h[e][0];r&&o(r)};i.useEffect(()=>{const e=l=>{d.current&&M({x:Math.max(8,l.clientX-d.current.x),y:Math.max(8,l.clientY-d.current.y)})},r=()=>{d.current=null,document.body.classList.remove("select-none")};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",r),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",r)}},[]);const m=e=>{const r=e.currentTarget.getBoundingClientRect();d.current={x:e.clientX-r.left,y:e.clientY-r.top},document.body.classList.add("select-none"),e.currentTarget.setPointerCapture(e.pointerId)},L=()=>{if(y.length===0){const e=a==="webcam"?"No camera source":a==="image"?"No image preview":"No video preview";return t.jsx("div",{style:oe,children:e})}return t.jsxs("div",{style:te,children:[t.jsx("select",{value:n.id,onChange:e=>{const r=c.find(l=>l.id===e.target.value);r&&o(r)},style:ne,children:y.map(e=>t.jsxs("option",{value:e.id,children:[H(a),e.label]},e.id))}),t.jsx("div",{style:re,children:t.jsx("span",{style:{width:10,height:10},children:t.jsx(P,{size:10,strokeWidth:1.8})})})]})};return typeof document>"u"?null:R.createPortal(t.jsx("div",{style:{...T,left:u.x,top:u.y,...S},children:_?t.jsxs("div",{style:J,children:[t.jsxs("div",{style:Q,children:[t.jsx("div",{onPointerDown:m,style:ee,title:"Drag to move",children:t.jsx(F,{size:11,strokeWidth:2})}),t.jsx("button",{type:"button",onClick:()=>p(!1),style:x(!1),title:"Close Menu",children:t.jsx("span",{style:f,children:t.jsx(s.X,{size:14,strokeWidth:1.8})})}),t.jsx("div",{style:Z}),["webcam","image","video"].map(e=>t.jsx("button",{type:"button",onClick:()=>I(e),style:x(a===e),title:e.charAt(0).toUpperCase()+e.slice(1),children:t.jsx("span",{style:f,children:e==="webcam"?t.jsx(D,{size:14,strokeWidth:1.8}):e==="image"?t.jsx(K,{size:14,strokeWidth:1.8}):t.jsx(G,{size:14,strokeWidth:1.8})})},e))]}),L()]}):t.jsx("div",{style:Y,onClick:()=>p(!0),onPointerDown:m,title:"Open Media Menu",children:t.jsx("span",{style:{width:16,height:16},children:t.jsx(X,{size:14,strokeWidth:1.8})})})}),document.body)};exports.MediaSourceSwitcher=ie;exports.defaultMediaSources=V;exports.sdkImageMediaSources=j;exports.sdkVideoMediaSources=w;
@@ -1,13 +0,0 @@
1
- export type FaceRetouchSettings = {
2
- retouchAmount: number;
3
- blurRadius: number;
4
- detailPreservation: number;
5
- blemishReduction: number;
6
- rednessReduction: number;
7
- blemishRadius: number;
8
- teethWhitening: number;
9
- previewMask: boolean;
10
- protectLandmarks: boolean;
11
- foreheadCoverage: boolean;
12
- };
13
- export declare const FACE_RETOUCH_PRESET: FaceRetouchSettings;
@@ -1,23 +0,0 @@
1
- import { FaceLandmark2D, FaceRetouchRegion } from '../../types/face';
2
- export declare const DEFAULT_FEATURE_GROUPS: number[][];
3
- export declare const DEFAULT_FEATURE_POINT_INDICES: number[];
4
- export type CreateFaceRetouchRegionsOptions = {
5
- faceOvalIndices?: number[];
6
- featureGroups?: number[][];
7
- featurePointIndices?: number[];
8
- faceBoundsExpansion?: number;
9
- featureBoundsExpansion?: number;
10
- minRegionRadius?: number;
11
- faceRegionStrength?: number;
12
- featureRegionStrength?: number;
13
- featurePointRegionStrength?: number;
14
- featurePointRadiusRatio?: number;
15
- };
16
- /**
17
- * Compute elliptical retouch regions from MediaPipe face landmarks.
18
- *
19
- * The defaults match the V2 face-retouch demo. Override `featureGroups`
20
- * or `featurePointIndices` to retouch a different anatomy (or a different
21
- * landmark model).
22
- */
23
- export declare const createFaceRetouchRegions: (landmarks: FaceLandmark2D[] | undefined, options?: CreateFaceRetouchRegionsOptions) => FaceRetouchRegion[];
@@ -1,12 +0,0 @@
1
- import { FaceRetouchRegion } from '../../types/face';
2
- import { XRModelNodeFaceTracking } from '../../types/nodes';
3
- import { CreateFaceRetouchRegionsOptions } from './retouchRegions';
4
- /**
5
- * Continuously recompute face-retouch regions from the active face's
6
- * landmarks. Returns a stable array reference when the regions haven't
7
- * meaningfully changed (4-decimal precision).
8
- *
9
- * Pass `options` to retouch a different anatomy or landmark model — see
10
- * `createFaceRetouchRegions`.
11
- */
12
- export declare const useFaceRetouchRegions: (faceNode: XRModelNodeFaceTracking | null, options?: CreateFaceRetouchRegionsOptions) => FaceRetouchRegion[];
@@ -1 +0,0 @@
1
- "use strict";const e={enabled:!1,strength:1,faceWidth:0,faceHeight:0,faceRoundness:0,midfaceHeight:0,foreheadHeight:0,foreheadWidth:0,cheekboneWidth:0,cheekWidth:0,cheekHollowness:0,midfaceDepth:0,scalpHeight:0,headCurve:0,faceTwist:0,faceSwirl:0,browDistance:0,browHeight:0,browDepth:0,eyeSize:0,leftEyeSize:0,rightEyeSize:0,eyeDistance:0,leftEyeX:0,rightEyeX:0,leftEyeY:0,rightEyeY:0,noseSize:0,noseLength:0,mouthWidth:0,mouthHeight:0,jawWidth:0,chinHeight:0},t={...e,enabled:!0,strength:1,faceWidth:-.08,faceHeight:.04,foreheadHeight:.04,cheekWidth:-.04,eyeSize:.08,eyeDistance:.03,noseSize:-.05,noseLength:.03,mouthWidth:.06,mouthHeight:.02,jawWidth:-.05,chinHeight:.03};exports.DEFAULT_FACE_WARP_3D_SETTINGS=e;exports.FACE_WARP_3D_PRESET=t;
@@ -1,55 +0,0 @@
1
- const e = {
2
- enabled: !1,
3
- strength: 1,
4
- faceWidth: 0,
5
- faceHeight: 0,
6
- faceRoundness: 0,
7
- midfaceHeight: 0,
8
- foreheadHeight: 0,
9
- foreheadWidth: 0,
10
- cheekboneWidth: 0,
11
- cheekWidth: 0,
12
- cheekHollowness: 0,
13
- midfaceDepth: 0,
14
- scalpHeight: 0,
15
- headCurve: 0,
16
- faceTwist: 0,
17
- faceSwirl: 0,
18
- browDistance: 0,
19
- browHeight: 0,
20
- browDepth: 0,
21
- eyeSize: 0,
22
- leftEyeSize: 0,
23
- rightEyeSize: 0,
24
- eyeDistance: 0,
25
- leftEyeX: 0,
26
- rightEyeX: 0,
27
- leftEyeY: 0,
28
- rightEyeY: 0,
29
- noseSize: 0,
30
- noseLength: 0,
31
- mouthWidth: 0,
32
- mouthHeight: 0,
33
- jawWidth: 0,
34
- chinHeight: 0
35
- }, t = {
36
- ...e,
37
- enabled: !0,
38
- strength: 1,
39
- faceWidth: -0.08,
40
- faceHeight: 0.04,
41
- foreheadHeight: 0.04,
42
- cheekWidth: -0.04,
43
- eyeSize: 0.08,
44
- eyeDistance: 0.03,
45
- noseSize: -0.05,
46
- noseLength: 0.03,
47
- mouthWidth: 0.06,
48
- mouthHeight: 0.02,
49
- jawWidth: -0.05,
50
- chinHeight: 0.03
51
- };
52
- export {
53
- e as D,
54
- t as F
55
- };
@@ -1 +0,0 @@
1
- "use strict";const T=require("react/jsx-runtime"),v=require("@react-three/fiber"),r=require("react"),x=require("./index-DxshgBu0.cjs"),w=require("./useXRModel-3DcUa28n.cjs"),S=require("three");function P(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(s,o,a.get?a:{enumerable:!0,get:()=>e[o]})}}return s.default=e,Object.freeze(s)}const E=P(S),b=r.createContext(null),U=()=>r.useContext(b),q=(e,s,o)=>x.unprojectToZZeroInto(e,s,o),H=(e,s,o)=>{const a=(e.x-.5)*2,d=(.5-e.y)*2,p=E.MathUtils.clamp(e.z*2,-1,1);return o.set(a,d,p).unproject(s)},X=(e,s,o,a,d,p)=>{const A=Math.min(s,e.length);for(let c=0;c<A;c++){d(e[c],a,p);const R=c*3;o[R]=p.x,o[R+1]=p.y,o[R+2]=p.z}return A},z=[[127,34,139],[11,0,37],[232,231,120],[72,37,39],[128,121,47],[232,121,128],[104,69,67],[175,171,148],[118,50,101],[73,39,40],[9,151,108],[48,115,131],[194,204,211],[74,40,185],[80,42,183],[40,92,186],[230,229,118],[202,212,214],[83,18,17],[76,61,146],[160,29,30],[56,157,173],[106,204,194],[135,214,192],[203,165,98],[21,71,68],[51,45,4],[144,24,23],[77,146,91],[205,50,187],[201,200,18],[91,106,182],[90,91,181],[85,84,17],[206,203,36],[148,171,140],[92,40,39],[193,189,244],[159,158,28],[247,246,161],[236,3,196],[54,68,104],[193,168,8],[117,228,31],[189,193,55],[98,97,99],[126,47,100],[166,79,218],[155,154,26],[209,49,131],[135,136,150],[47,126,217],[223,52,53],[45,51,134],[211,170,140],[67,69,108],[43,106,91],[230,119,120],[226,130,247],[63,53,52],[238,20,242],[46,70,156],[78,62,96],[46,53,63],[143,34,227],[123,117,111],[44,125,19],[236,134,51],[216,206,205],[154,153,22],[39,37,167],[200,201,208],[36,142,100],[57,212,202],[20,60,99],[28,158,157],[35,226,113],[160,159,27],[204,202,210],[113,225,46],[43,202,204],[62,76,77],[137,123,116],[41,38,72],[203,129,142],[64,98,240],[49,102,64],[41,73,74],[212,216,207],[42,74,184],[169,170,211],[170,149,176],[105,66,69],[122,6,168],[123,147,187],[96,77,90],[65,55,107],[89,90,180],[101,100,120],[63,105,104],[93,137,227],[15,86,85],[129,102,49],[14,87,86],[55,8,9],[100,47,121],[145,23,22],[88,89,179],[6,122,196],[88,95,96],[138,172,136],[215,58,172],[115,48,219],[42,80,81],[195,3,51],[43,146,61],[171,175,199],[81,82,38],[53,46,225],[144,163,110],[52,65,66],[229,228,117],[34,127,234],[107,108,69],[109,108,151],[48,64,235],[62,78,191],[129,209,126],[111,35,143],[117,123,50],[222,65,52],[19,125,141],[221,55,65],[3,195,197],[25,7,33],[220,237,44],[70,71,139],[122,193,245],[247,130,33],[71,21,162],[170,169,150],[188,174,196],[216,186,92],[2,97,167],[141,125,241],[164,167,37],[72,38,12],[38,82,13],[63,68,71],[226,35,111],[101,50,205],[206,92,165],[209,198,217],[165,167,97],[220,115,218],[133,112,243],[239,238,241],[214,135,169],[190,173,133],[171,208,32],[125,44,237],[86,87,178],[85,86,179],[84,85,180],[83,84,181],[201,83,182],[137,93,132],[76,62,183],[61,76,184],[57,61,185],[212,57,186],[214,207,187],[34,143,156],[79,239,237],[123,137,177],[44,1,4],[201,194,32],[64,102,129],[213,215,138],[59,166,219],[242,99,97],[2,94,141],[75,59,235],[24,110,228],[25,130,226],[23,24,229],[22,23,230],[26,22,231],[112,26,232],[189,190,243],[221,56,190],[28,56,221],[27,28,222],[29,27,223],[30,29,224],[247,30,225],[238,79,20],[166,59,75],[60,75,240],[147,177,215],[20,79,166],[187,147,213],[112,233,244],[233,128,245],[128,114,188],[114,217,174],[131,115,220],[217,198,236],[198,131,134],[177,132,58],[143,35,124],[110,163,7],[228,110,25],[356,389,368],[11,302,267],[452,350,349],[302,303,269],[357,343,277],[452,453,357],[333,332,297],[175,152,377],[347,348,330],[303,304,270],[9,336,337],[278,279,360],[418,262,431],[304,408,409],[310,415,407],[270,409,410],[450,348,347],[422,430,434],[313,314,17],[306,307,375],[387,388,260],[286,414,398],[335,406,418],[364,367,416],[423,358,327],[251,284,298],[281,5,4],[373,374,253],[307,320,321],[425,427,411],[421,313,18],[321,405,406],[320,404,405],[315,16,17],[426,425,266],[377,400,369],[322,391,269],[417,465,464],[386,257,258],[466,260,388],[456,399,419],[284,332,333],[417,285,8],[346,340,261],[413,441,285],[327,460,328],[355,371,329],[392,439,438],[382,341,256],[429,420,360],[364,394,379],[277,343,437],[443,444,283],[275,440,363],[431,262,369],[297,338,337],[273,375,321],[450,451,349],[446,342,467],[293,334,282],[458,461,462],[276,353,383],[308,324,325],[276,300,293],[372,345,447],[352,345,340],[274,1,19],[456,248,281],[436,427,425],[381,256,252],[269,391,393],[200,199,428],[266,330,329],[287,273,422],[250,462,328],[258,286,384],[265,353,342],[387,259,257],[424,431,430],[342,353,276],[273,335,424],[292,325,307],[366,447,345],[271,303,302],[423,266,371],[294,455,460],[279,278,294],[271,272,304],[432,434,427],[272,407,408],[394,430,431],[395,369,400],[334,333,299],[351,417,168],[352,280,411],[325,319,320],[295,296,336],[319,403,404],[330,348,349],[293,298,333],[323,454,447],[15,16,315],[358,429,279],[14,15,316],[285,336,9],[329,349,350],[374,380,252],[318,402,403],[6,197,419],[318,319,325],[367,364,365],[435,367,397],[344,438,439],[272,271,311],[195,5,281],[273,287,291],[396,428,199],[311,271,268],[283,444,445],[373,254,339],[282,334,296],[449,347,346],[264,447,454],[336,296,299],[338,10,151],[278,439,455],[292,407,415],[358,371,355],[340,345,372],[346,347,280],[442,443,282],[19,94,370],[441,442,295],[248,419,197],[263,255,359],[440,275,274],[300,383,368],[351,412,465],[263,467,466],[301,368,389],[395,378,379],[412,351,419],[436,426,322],[2,164,393],[370,462,461],[164,0,267],[302,11,12],[268,12,13],[293,300,301],[446,261,340],[330,266,425],[426,423,391],[429,355,437],[391,327,326],[440,457,438],[341,382,362],[459,457,461],[434,430,394],[414,463,362],[396,369,262],[354,461,457],[316,403,402],[315,404,403],[314,405,404],[313,406,405],[421,418,406],[366,401,361],[306,408,407],[291,409,408],[287,410,409],[432,436,410],[434,416,411],[264,368,383],[309,438,457],[352,376,401],[274,275,4],[421,428,262],[294,327,358],[433,416,367],[289,455,439],[462,370,326],[2,326,370],[305,460,455],[254,449,448],[255,261,446],[253,450,449],[252,451,450],[256,452,451],[341,453,452],[413,464,463],[441,413,414],[258,442,441],[257,443,442],[259,444,443],[260,445,444],[467,342,445],[459,458,250],[289,392,290],[290,328,460],[376,433,435],[250,290,392],[411,416,433],[341,463,464],[453,464,465],[357,465,412],[343,412,399],[360,363,440],[437,399,456],[420,456,363],[401,435,288],[372,383,353],[339,255,249],[448,261,255],[133,243,190],[133,155,112],[33,246,247],[33,130,25],[398,384,286],[362,398,414],[362,463,341],[263,359,467],[263,249,255],[466,467,260],[75,60,166],[238,239,79],[162,127,139],[72,11,37],[121,232,120],[73,72,39],[114,128,47],[233,232,128],[103,104,67],[152,175,148],[119,118,101],[74,73,40],[107,9,108],[49,48,131],[32,194,211],[184,74,185],[191,80,183],[185,40,186],[119,230,118],[210,202,214],[84,83,17],[77,76,146],[161,160,30],[190,56,173],[182,106,194],[138,135,192],[129,203,98],[54,21,68],[5,51,4],[145,144,23],[90,77,91],[207,205,187],[83,201,18],[181,91,182],[180,90,181],[16,85,17],[205,206,36],[176,148,140],[165,92,39],[245,193,244],[27,159,28],[30,247,161],[174,236,196],[103,54,104],[55,193,8],[111,117,31],[221,189,55],[240,98,99],[142,126,100],[219,166,218],[112,155,26],[198,209,131],[169,135,150],[114,47,217],[224,223,53],[220,45,134],[32,211,140],[109,67,108],[146,43,91],[231,230,120],[113,226,247],[105,63,52],[241,238,242],[124,46,156],[95,78,96],[70,46,63],[116,143,227],[116,123,111],[1,44,19],[3,236,51],[207,216,205],[26,154,22],[165,39,167],[199,200,208],[101,36,100],[43,57,202],[242,20,99],[56,28,157],[124,35,113],[29,160,27],[211,204,210],[124,113,46],[106,43,204],[96,62,77],[227,137,116],[73,41,72],[36,203,142],[235,64,240],[48,49,64],[42,41,74],[214,212,207],[183,42,184],[210,169,211],[140,170,176],[104,105,69],[193,122,168],[50,123,187],[89,96,90],[66,65,107],[179,89,180],[119,101,120],[68,63,104],[234,93,227],[16,15,85],[209,129,49],[15,14,86],[107,55,9],[120,100,121],[153,145,22],[178,88,179],[197,6,196],[89,88,96],[135,138,136],[138,215,172],[218,115,219],[41,42,81],[5,195,51],[57,43,61],[208,171,199],[41,81,38],[224,53,225],[24,144,110],[105,52,66],[118,229,117],[227,34,234],[66,107,69],[10,109,151],[219,48,235],[183,62,191],[142,129,126],[116,111,143],[118,117,50],[223,222,52],[94,19,141],[222,221,65],[196,3,197],[45,220,44],[156,70,139],[188,122,245],[139,71,162],[149,170,150],[122,188,196],[206,216,92],[164,2,167],[242,141,241],[0,164,37],[11,72,12],[12,38,13],[70,63,71],[31,226,111],[36,101,205],[203,206,165],[126,209,217],[98,165,97],[237,220,218],[237,239,241],[210,214,169],[140,171,32],[241,125,237],[179,86,178],[180,85,179],[181,84,180],[182,83,181],[194,201,182],[177,137,132],[184,76,183],[185,61,184],[186,57,185],[216,212,186],[192,214,187],[139,34,156],[218,79,237],[147,123,177],[45,44,4],[208,201,32],[98,64,129],[192,213,138],[235,59,219],[141,242,97],[97,2,141],[240,75,235],[229,24,228],[31,25,226],[230,23,229],[231,22,230],[232,26,231],[233,112,232],[244,189,243],[189,221,190],[222,28,221],[223,27,222],[224,29,223],[225,30,224],[113,247,225],[99,60,240],[213,147,215],[60,20,166],[192,187,213],[243,112,244],[244,233,245],[245,128,188],[188,114,174],[134,131,220],[174,217,236],[236,198,134],[215,177,58],[156,143,124],[25,110,7],[31,228,25],[264,356,368],[0,11,267],[451,452,349],[267,302,269],[350,357,277],[350,452,357],[299,333,297],[396,175,377],[280,347,330],[269,303,270],[151,9,337],[344,278,360],[424,418,431],[270,304,409],[272,310,407],[322,270,410],[449,450,347],[432,422,434],[18,313,17],[291,306,375],[259,387,260],[424,335,418],[434,364,416],[391,423,327],[301,251,298],[275,281,4],[254,373,253],[375,307,321],[280,425,411],[200,421,18],[335,321,406],[321,320,405],[314,315,17],[423,426,266],[396,377,369],[270,322,269],[413,417,464],[385,386,258],[248,456,419],[298,284,333],[168,417,8],[448,346,261],[417,413,285],[326,327,328],[277,355,329],[309,392,438],[381,382,256],[279,429,360],[365,364,379],[355,277,437],[282,443,283],[281,275,363],[395,431,369],[299,297,337],[335,273,321],[348,450,349],[359,446,467],[283,293,282],[250,458,462],[300,276,383],[292,308,325],[283,276,293],[264,372,447],[346,352,340],[354,274,19],[363,456,281],[426,436,425],[380,381,252],[267,269,393],[421,200,428],[371,266,329],[432,287,422],[290,250,328],[385,258,384],[446,265,342],[386,387,257],[422,424,430],[445,342,276],[422,273,424],[306,292,307],[352,366,345],[268,271,302],[358,423,371],[327,294,460],[331,279,294],[303,271,304],[436,432,427],[304,272,408],[395,394,431],[378,395,400],[296,334,299],[6,351,168],[376,352,411],[307,325,320],[285,295,336],[320,319,404],[329,330,349],[334,293,333],[366,323,447],[316,15,315],[331,358,279],[317,14,316],[8,285,9],[277,329,350],[253,374,252],[319,318,403],[351,6,419],[324,318,325],[397,367,365],[288,435,397],[278,344,439],[310,272,311],[248,195,281],[375,273,291],[175,396,199],[312,311,268],[276,283,445],[390,373,339],[295,282,296],[448,449,346],[356,264,454],[337,336,299],[337,338,151],[294,278,455],[308,292,415],[429,358,355],[265,340,372],[352,346,280],[295,442,282],[354,19,370],[285,441,295],[195,248,197],[457,440,274],[301,300,368],[417,351,465],[251,301,389],[394,395,379],[399,412,419],[410,436,322],[326,2,393],[354,370,461],[393,164,267],[268,302,12],[312,268,13],[298,293,301],[265,446,340],[280,330,425],[322,426,391],[420,429,437],[393,391,326],[344,440,438],[458,459,461],[364,434,394],[428,396,262],[274,354,457],[317,316,402],[316,315,403],[315,314,404],[314,313,405],[313,421,406],[323,366,361],[292,306,407],[306,291,408],[291,287,409],[287,432,410],[427,434,411],[372,264,383],[459,309,457],[366,352,401],[1,274,4],[418,421,262],[331,294,358],[435,433,367],[392,289,439],[328,462,326],[94,2,370],[289,305,455],[339,254,448],[359,255,446],[254,253,449],[253,252,450],[252,256,451],[256,341,452],[414,413,463],[286,441,414],[286,258,441],[258,257,442],[257,259,443],[259,260,444],[260,467,445],[309,459,250],[305,289,290],[305,290,460],[401,376,435],[309,250,392],[376,411,433],[453,341,464],[357,453,465],[343,357,412],[437,343,399],[344,360,440],[420,437,456],[360,420,363],[361,401,288],[265,372,353],[390,339,249],[339,448,255],[255,339,448]].flat(),V=[.5104879319667817,.33515610277652746,.5174233198165894,.43859300494194037,.5123749554157258,.406469448208809,.5423470318317414,.5244461464881898,.5190713584423066,.46557595014572145,.5194876372814179,.5006013351678849,.5178673148155213,.5855525898933411,.7009655416011811,.5918984371423721,.5193980515003205,.6528422343730926,.520683366060257,.689273599088192,.5248700261116028,.8232529717683792,.5099657952785492,.32301718473434454,.5088536620140076,.31080526888370513,.5081197202205658,.3013389307260514,.5072353065013886,.29900476515293123,.5073091566562653,.28442813932895666,.5065075337886811,.26649361431598667,.5061309516429902,.24778731942176818,.5031875848770142,.22179436564445493,.515326726436615,.4231037962436676,.5375777959823609,.4205444622039795,.8049442350864411,.6867966356873512,.6222659975290299,.570705144405365,.6496635556221009,.567776631116867,.6773027807474137,.5670208501815797,.7126377105712891,.5800703662633897,.5999099642038346,.5764724123477936,.674340370297432,.6495546865463258,.639536875486374,.6477413746714593,.703840109705925,.642201315164566,.7209078550338746,.6294069054722786,.7342745542526246,.5601695317029953,.6015644401311875,.18118685364723203,.7114282578229905,.598883952498436,.809715884923935,.5682615923881531,.7667155593633652,.5767241555452347,.6445030301809311,.45154162526130676,.541424173116684,.34213731765747074,.5359058856964112,.3113374251127243,.5710002213716507,.33134433805942537,.5891562283039093,.31890978991985325,.5585465461015702,.3096196609735489,.5759132236242295,.30601608335971836,.6229794204235077,.2713706839084626,.5398103773593903,.43802148282527925,.545369166135788,.46441581428051,.7616913348436356,.6473416510224344,.5914883643388749,.5243312466144563,.5945767045021058,.44076132655143746,.5964909076690674,.4544808346033096,.7225886166095734,.4498931097984314,.5443432211875916,.49703910827636727,.7029067009687424,.6777765545248986,.7391736537218094,.6677046212553979,.7836920201778412,.7359224516153335,.577455359697342,.6573990839719772,.6085408657789231,.6353888112306596,.6427326381206513,.298196165561676,.7550604224205018,.30743678390979773,.5732827365398407,.4262381809949875,.5523188143968583,.417594336271286,.6096987754106522,.29745593249797825,.6036115020513535,.2985246556997299,.7549919366836548,.6845966669917107,.592850747704506,.4273046988248826,.6501948565244675,.6762702855467797,.6582381755113602,.699515787065029,.682483646273613,.802994977235794,.768890205025673,.710366437137127,.6672395795583725,.752104974091053,.7775519520044327,.6584857258200645,.7920276552438736,.6709628927707671,.5397542297840119,.3256357330083847,.5643998861312867,.3199443298578262,.5826229482889176,.313130943775177,.5657853364944458,.42035281538963326,.606510478258133,.2980171996355057,.5952901721000672,.2918463486433029,.5999826073646546,.29865378022193906,.565356719493866,.4374908703565598,.570739108324051,.30172707617282873,.5532697021961213,.303354971408844,.532040822505951,.3026815611124039,.5385064661502839,.22311560392379765,.5377482950687409,.25083183526992797,.5373399734497071,.26933391273021695,.5351483404636384,.28629542768001554,.5317461371421814,.3004490631818772,.5704152762889863,.30009212374687194,.5761924862861634,.2931597578525544,.5817892730236054,.28451425909996036,.5862761169672013,.27445026516914367,.6169582635164261,.3500816184282303,.7930811375379563,.4456584650278092,.5136566936969758,.41420710563659674,.5836256474256516,.29897587478160864,.5893380820751191,.29504160165786747,.5458188831806183,.4063113230466843,.581692311167717,.41034119904041294,.5490593492984772,.4114610868692398,.6189475685358048,.5063568043708802,.6631498366594315,.48547921061515814,.5990702986717225,.44076220870018007,.7452016949653626,.7754116746783257,.729542288184166,.7380649703741073,.7152380675077439,.6996659177541733,.6012845069169999,.2532631474733353,.5908916622400284,.6924743655323982,.6002487272024155,.7558749470114707,.611236396431923,.817432113289833,.6991332352161408,.5705236423015594,.7608276635408402,.5389788854122162,.5859951555728913,.5837152945995332,.7452233761548996,.6138822454214097,.5740126550197602,.542653586268425,.5829357832670212,.45267452478408815,.7883433729410172,.5171645599603654,.7431249052286149,.5203535276651383,.7091684520244599,.5116798001527787,.6566549122333527,.5192352938652038,.6176983743906022,.532645167708397,.590181502699852,.5458893078565599,.5431278228759766,.5780327129364013,.7785866141319275,.4588600414991379,.7662802815437317,.614813904762268,.528258103132248,.42353384375572206,.5884005159139634,.49679056286811835,.8132390558719635,.5690749335289003,.5698921114206315,.5609081107378007,.5997681200504303,.4383326607942582,.7258545190095902,.5959577548503876,.5829301953315735,.4692867088317872,.7767194837331772,.37870833754539496,.5859857678413392,.5927838939428329,.5655010223388672,.4863545227050781,.7103684276342392,.24216726005077366,.7039464592933655,.21081999421119696,.7955554753541947,.45157338261604313,.7394011497497559,.27975760281085965,.8023439675569535,.6235768947005271,.6065513819456101,.1520459520816803,.5237656712532044,.4144193726778031,.6113508373498917,.4744607317447663,.7872020035982132,.5706054615974427,.6744208365678788,.5840893256664277,.6509357273578644,.5835042405128479,.599469143152237,.28584001839160916,.76683469414711,.4027401643991471,.5548133134841919,.11242247700691227,.6348527550697327,.15134210765361789,.6676738739013672,.17523885548114776,.5231557369232178,.758142014145851,.49590798020362853,.10746171355247497,.6282390981912613,.5856175380945206,.6072420954704285,.5888098138570785,.592762503027916,.5906054276227952,.7843813925981522,.61877524882555,.610203567147255,.6159668180346489,.6345708996057511,.625477318763733,.6599059730768204,.6266139122843744,.6838259130716324,.6209151762723923,.6978932946920395,.6127474161982536,.8138886868953705,.6332776087522507,.690067994594574,.587394626736641,.5115295231342316,.3814830261468887,.593753132224083,.3682318288087845,.5745513767004014,.43174642801284796,.5468618154525757,.38006519258022314,.5175330221652985,.6183956491947173,.6776301890611649,.20638245522975923,.6439310491085053,.1795444029569626,.5587406486272812,.13319884419441225,.7303948730230332,.25156523168087,.5936179041862488,.6020026791095734,.5595558166503907,.5354639637470247,.49903409481048583,.12705478847026824,.5986292988061905,.12926876127719883,.7810411036014557,.3901792484521866,.5526776045560837,.3004089254140854,.5582781463861466,.2904709684848786,.5625745087862015,.2769930589199066,.5656344175338746,.26021293580532073,.5736826092004776,.23544175803661344,.5897697389125824,.3026730704307556,.5960018962621689,.3050022739171982,.6013990819454194,.30801084220409397,.6334722220897675,.32613734483718876,.7345953911542893,.3890004771947861,.5586504369974137,.5622388321161271,.5686756849288941,.6147718372941018,.5835970371961594,.6114995065331459,.58382708132267,.30018893957138065,.7323651343584061,.3204736191034317,.5478970587253571,.6144195291399956,.5885591685771943,.20925473153591162,.5188342511653901,.5294416445493699,.5430448532104493,.5502454686164857,.5189176678657532,.5563708889484407,.5749752998352051,.4918947476148606,.5015926539897919,.1563655036687851,.5023517191410065,.19124654710292815,.5467969954013825,.1949619370698929,.6493796885013581,.2596786844730377,.6223085105419159,.4147812741994858,.6219283074140549,.2305004018545151,.6836527764797211,.41583852946758276,.6457133769989014,.38482945740222935,.7015091359615326,.3687519657611847,.5560723870992661,.1615346747636795,.5877480685710907,.4753766226768494,.672212439775467,.23758670270442966,.6372418433427811,.20715841531753537,.6714329898357392,.2934120523929596,.7559577107429505,.3546825754642487,.7028004407882691,.28965476036071774,.7641248583793641,.3323610144853592,.6633666038513184,.34586538851261145,.5732450067996979,.5168171036243439,.5740206122398377,.4420601803064346,.5862565368413926,.4328912365436554,.5658091634511948,.46056721985340127,.5935333251953125,.6414948242902756,.643502163887024,.6581727835536004,.6862205892801285,.6599488797783852,.71900634765625,.6517863023281099,.7387710094451905,.6366994085907935,.7436862468719483,.5870225805044174,.8067718029022217,.5102852332592012,.719052392244339,.549573050737381,.6912373930215836,.5426725524663925,.6540380597114563,.5452089506387712,.6191460520029068,.5529706466197968,.5933077514171601,.5624450343847276,.5760908752679825,.5711276936531067,.8037864595651627,.5079354095458986,.5832139283418656,.42433229863643646,.5602819353342057,.5111040878295898,.5571386992931366,.44193623840808877,.5406022548675538,.42711933732032775,.5550468444824219,.43675835609436037,.5743813246488572,.4152073520421982,.5367868125438691,.42474128484725954,.5321040332317353,.41727378547191624,.5769275009632111,.5919214832782747,.5631695121526719,.5864408034086228,.555830317735672,.5819090950489045,.7057080000638962,.6055842030048371,.7297580271959305,.614007951617241,.49450652599334716,.5258826154470444,.30584611296653746,.6040364730358123,.4885244846343994,.4224347966909409,.188004332780838,.7111089858412742,.3873521864414215,.5786778944730759,.3588928759098053,.5761974024772645,.32972376346588134,.5772378969192504,.29263614416122435,.5937507289648056,.4124107241630554,.5837435233592987,.3437161326408386,.6627882960438729,.3795058310031891,.6574259343743325,.3114838480949402,.657741964161396,.2904722273349762,.6461278694868089,.2668101370334625,.5759735572338105,.3916287899017334,.18396661460399627,.2956514835357666,.6133467811346054,.17441000342369078,.5913206297159195,.23045413494110106,.5952582108974458,.3695909559726715,.4586390632390976,.4777859032154083,.34189285218715665,.4799880862236023,.31095413148403167,.4436598002910614,.32987600147724155,.42009713053703307,.3173161882162094,.4536511182785034,.3079365211725235,.431768137216568,.30468503117561346,.37606616616249083,.27423435926437384,.49449856877326964,.4396295297145844,.4917183697223663,.4654612708091736,.2524005055427551,.6652582022547722,.4289156973361969,.5291139262914657,.4268526315689087,.44427823305130004,.42474048137664794,.45817836105823523,.2809027314186096,.46354105353355407,.49383275508880614,.49885324716567997,.3271153151988983,.6924127805233002,.28349151015281676,.6843035730719567,.22369228601455687,.7584647151827812,.4591939032077789,.6617383736371993,.40913431644439696,.6426751393079757,.35715471506118773,.30240225076675414,.1987894058227539,.3237072455883026,.4482724845409393,.42876928627491,.4697932779788971,.4196605491638184,.39104996919631957,.2959751355648041,.3971476137638092,.29665681600570676,.26748310327529906,.7016683402657509,.4251814365386963,.4304117369651795,.3845069885253906,.6860294970870018,.3804918110370636,.7099798905849457,.35481985211372374,.8164000543951988,.2475942552089691,.730037857890129,.37163846492767333,.7639490339159964,.23443256616592406,.677293357551098,.2116762578487396,.6924480664730073,.4783883273601532,.32515374898910526,.44883744716644286,.3184075164794922,.42566208839416503,.31092865943908693,.45405327081680297,.4228447753190994,.3932682454586029,.2964416819810867,.4071350872516632,.290535255074501,.40034677386283873,.29673135757446295,.4610676050186157,.44076672971248626,.4361940503120422,.3005809444189072,.45694692730903624,.30211268544197084,.4812539994716644,.30183855772018436,.46574126482009887,.22492808878421783,.47153966426849364,.25130698263645174,.4740802526473999,.2694691020250321,.4768980026245117,.28705804526805884,.48090897798538207,.2996276724338532,.43501039147377013,.2992805469036102,.4293511092662811,.2932880002260208,.4233271360397339,.28415390133857726,.41761367321014403,.27479386210441586,.39445154666900634,.3538810330629349,.16652100086212157,.4672100204229355,.4183532476425171,.29779809594154355,.41378535628318786,.29400077641010286,.47695048451423644,.40816306352615356,.43489335775375365,.41207451105117804,.473628032207489,.41300628066062933,.3975309908390045,.5133917200565339,.34924407601356505,.4949547010660172,.4189921498298645,.44448454558849343,.27738903760910033,.7946441161632538,.29866914749145507,.7549788492918015,.3170970857143402,.7143296006321906,.39919986128807067,.2556870716810226,.4517517566680908,.6986333075165749,.44375439286231994,.7623249980807305,.4346091330051422,.8250303360819817,.3058603286743164,.5830274391174317,.235262531042099,.5560186910629272,.4279192566871643,.5892863947153091,.2622906148433685,.6309370476007461,.45053591132164,.5464099961519242,.44443781971931456,.45605955004692084,.20207332372665404,.5370177584886551,.25663607120513915,.5358516681194305,.29581143260002135,.5243526387214661,.3525206625461578,.5284005987644196,.39442025423049926,.5392975616455078,.42579718232154845,.5511161494255066,.49076547026634215,.5801296907663345,.20957841277122496,.47626241028308874,.23929433822631835,.6331100556254388,.5024659812450409,.4247821944952011,.432133811712265,.5009672063589097,.15906893014907836,.5940177994966507,.4492078602313995,.5648097443580629,.41579030752182006,.4419312763214112,.2798506796360016,.6113770532608032,.44294874668121337,.47275686144828805,.1783646523952484,.3979667472839356,.42730753421783446,.5981915760040284,.46777849197387694,.4889896112680436,.26486464142799376,.2499848622083664,.26026474237442015,.21801546096801755,.17761032581329345,.47220298230648045,.23215438723564147,.29172880232334136,.1906857371330261,.6463678139448166,.3811529755592346,.1541750180721283,.5033367156982422,.41569132089614874,.40528597235679625,.4797393995523453,.2049500823020935,.59123428940773,.3344294309616089,.5942869651317597,.35825960636138915,.5929379391670226,.4015964150428772,.28595646202564245,.21618961095809935,.4194869863986969,.43316020369529723,.11274379968643189,.34098224639892577,.1526068884134293,.3026312172412872,.17882644414901733,.3831480026245117,.5945327538251877,.40483357310295104,.5966399866342544,.419615763425827,.5973996269702913,.2160478115081787,.6388220790028571,.40051244497299193,.6220169800519944,.37555851340293883,.6336345481872558,.3499592423439026,.6373451414704323,.32648445963859557,.6342222797870636,.3108482539653778,.6266552078723908,.16784127354621886,.6591027337312698,.3177972316741943,.5982361245155334,.4220952868461609,.3706905978918075,.4483287215232849,.43451813936233524,.4753179132938385,.38104525983333587,.30160035490989684,.21209139108657843,.33879016637802123,.18215490162372588,.4353105306625366,.1335425513982773,.22725783586502074,.2627154815196991,.4187734603881836,.6076370733976364,.471796441078186,.5377814787626267,.3835057199001312,.13003402531147007,.18837626576423644,.4081169712543488,.4558822691440582,.3006539422273636,.45070006251335143,.29020555198192594,.44506027102470397,.276558490395546,.441160249710083,.26132532536983494,.42807196378707885,.237567846775055,.413764613866806,.300301303267479,.40849854350090026,.3033808845281601,.40325652360916137,.3060078132152558,.3719393193721771,.3296157675981522,.2585947096347809,.4027331072092057,.4712364852428436,.5652889716625213,.4525624096393585,.6187475714087487,.43274884223937987,.6166740807890891,.4197424530982971,.2985221195220948,.25107048749923705,.3324888157844544,.48253663182258605,.6165598976612092,.40862621665000914,.21186126053333282,.4922338902950287,.5517929780483246,.4509614884853363,.49562425196170806,.45456190705299376,.19553345918655402,.3438455045223236,.2646773803234101,.39053775668144225,.41997271955013277,.3724295377731323,.2345973211526871,.32362549304962157,.42551548063755035,.3627460479736328,.39166522800922393,.2982912242412567,.37974442124366764,.44216259121894835,.16258520364761353,.4327280104160309,.47912641644477844,.31535937190055846,.24389803588390352,.35182328820228576,.2114975947141648,.3249718725681305,.3009969878196716,.22358919978141784,.36996547162532806,.2854694604873657,.29810287833213805,.2033691883087158,.34796677708625795,.3403308272361755,.35305335700511936,.4522935628890991,.520306442975998,.45397244691848754,.4453733104467393,.4360526978969574,.4358169931173325,.4670851409435272,.463337938785553,.430365788936615,.6462299782037735,.3818374752998352,.6678127396106721,.3376319885253906,.6731280717253685,.3007634162902832,.6677066612243652,.2756028652191162,.6542664083838463,.25909878611564635,.6035455572605133,.17238967418670653,.5322284626960754,.28373541235923766,.5632325726747514,.3148886442184448,.5544471430778504,.35481600761413573,.554238184094429,.39195387363433837,.5604119020700455,.4199950277805328,.5684955823421478,.4408359706401825,.5755523312091828,.1607656955718994,.5315613377094268,.43638269901275634,.4271241891384125,.4722903251647949,.513996543288231,.4744726598262787,.4443250972032547,.48785080313682555,.4292660462856293,.4740713119506836,.43900651216506964,.443528014421463,.4168834346532822,.49345849752426146,.4267724323272705,.49457465410232543,.4177086848020554,.438745903968811,.5969951617717744,.4560649275779724,.5900395292043685,.4670982837677002,.5844003933668136,.3021982192993164,.6197374525666237,.27794389724731444,.6304952013492584,.6290517628192902,.6082503873109817,.601810845732689,.608769752383232,.6309714198112488,.6319623801112175,.657788547873497,.6077486652135848,.6277183473110199,.5834045577049256,.333698707818985,.6181534442305565,.3082489252090454,.6187389704585076,.3358501076698303,.6419334176182747,.3613401234149933,.618020570576191,.33353258967399596,.5936576622724534],O=468,Z=O*3,j=({material:e,faceIndex:s=0,numFaces:o,visible:a=!0,children:d})=>{const{ready:p,node:A}=w.useXRModel(x.XRModel.FACE_TRACKER,o===void 0?void 0:{numFaces:o}),{camera:c}=v.useThree(),R=r.useRef(null),M=r.useRef(null),C=r.useRef(null),y=r.useRef(null),h=r.useRef(null),k=r.useRef(new E.Vector3),l=r.useMemo(()=>{const f=new Uint16Array(z),i=new E.BufferAttribute(f,1),t=new E.Float32BufferAttribute(V,2),u=new Float32Array(Z),n=new E.Float32BufferAttribute(u,3);return n.setUsage(E.DynamicDrawUsage),{indexAttr:i,uvAttr:t,positionAttr:n,positions:u}},[]);r.useEffect(()=>{y.current=l.indexAttr,h.current=l.uvAttr,C.current=l.positionAttr,M.current=l.positions;const f=R.current;if(f){const i=f.geometry;i.setAttribute("position",l.positionAttr),i.setAttribute("uv",l.uvAttr),i.setIndex(l.indexAttr)}return()=>{y.current=null,h.current=null,C.current=null,M.current=null}},[l]),v.useFrame(()=>{var m;if(!p||!A||!R.current)return;const{detectionResults:f}=A,i=(m=f==null?void 0:f.faceLandmarks)==null?void 0:m[s],t=R.current.geometry,u=M.current,n=C.current;if(!i||i.length===0||!u||!n){t.drawRange.count!==0&&t.setDrawRange(0,0);return}t.getAttribute("position")!==n&&(t.setAttribute("position",n),t.setAttribute("uv",h.current),t.setIndex(y.current)),t.drawRange.count===0&&t.setDrawRange(0,1/0),X(i,O,u,c,q,k.current),n.needsUpdate=!0,t.computeVertexNormals()});const g=d!=null&&d!==!1;return T.jsxs("mesh",{material:e,ref:R,visible:a,children:[T.jsx("bufferGeometry",{}),!e&&!g&&T.jsx("meshStandardMaterial",{attach:"material",transparent:!0,depthWrite:!1,side:E.DoubleSide,needsUpdate:!0}),!e&&g?d:null]})};j.displayName="FaceMesh";const I={"face.forehead":10,"face.noseTip":1,"face.chin":152,"face.leftEyeOuter":263,"face.rightEyeOuter":33,"face.leftCheek":425,"face.rightCheek":205,"face.mouthCenter":13},K=({faceIndex:e=0,numFaces:s,scaleWithFace:o=!1,targetFps:a,active:d=!0,children:p})=>{const A=r.useRef(!1),c=r.useRef(null),R=r.useMemo(()=>{if(!(s===void 0&&a===void 0))return{...s===void 0?{}:{numFaces:s},...a===void 0?{}:{targetFps:a}}},[s,a]),{ready:M,node:C}=w.useXRModel(x.XRModel.FACE_TRACKER,R,d),{camera:y}=v.useThree(),h=r.useRef(y);h.current!==y&&(h.current=y,A.current=!1);const k=r.useRef(null);v.useFrame(()=>{if(!M||!C||!c.current)return;k.current=C,!A.current&&h.current&&(C._setCamera(h.current,e),A.current=!0);const t=C.getFace(e);if(!t){c.current.visible=!1;return}c.current.visible=!0;const{position:u,rotation:n,scale:m}=t.transform;c.current.position.set(u.x,u.y,u.z),c.current.rotation.set(n.x,n.y,n.z),o?c.current.scale.set(m.x,m.y,m.z):c.current.scale.set(1,1,1)});const l=r.useCallback(t=>{var D,F;const u=I[t];if(u===void 0)return null;const n=k.current,m=(F=(D=n==null?void 0:n.detectionResults)==null?void 0:D.faceLandmarks)==null?void 0:F[e];if(!m||m.length===0)return null;const _=m[u];return _?{position:x.unprojectToZZero(_,h.current)}:null},[e]),g=r.useMemo(()=>({type:"face",resolveLandmark:l}),[l]);let f;const i=[];return r.Children.forEach(p,t=>{var u,n;r.isValidElement(t)&&(((u=t.type)==null?void 0:u.displayName)==="FaceTracker.Mesh"||((n=t.type)==null?void 0:n.displayName)==="FaceMesh")?f=r.cloneElement(t,{faceIndex:e,numFaces:s}):i.push(t)}),T.jsxs(b.Provider,{value:g,children:[T.jsx("group",{ref:c,renderOrder:x.RENDER_LAYERS.TRACKED,children:i}),f]})},L=e=>T.jsx(j,{...e});L.displayName="FaceTracker.Mesh";const N=K;N.Mesh=L;const B=N;exports.FaceMesh=j;exports.FaceTracker=N;exports.HeadTracker=B;exports.TrackerContext=b;exports.projectLandmarkWithDepth=H;exports.useTrackerContext=U;
@@ -1,12 +0,0 @@
1
- const t = {
2
- // Pinned to the CDN, NOT build-env-driven: a stale VITE_ASSET_STORAGE_ENDPOINT
3
- // baked a now-deleted CloudFront domain into every published bundle, breaking
4
- // WASM/model loads at runtime. The host must never come from a mutable env value.
5
- assetStorageEndpoint: "https://cdn.vincentt.studio",
6
- // Versioned bucket for SDK-shipped reference assets (canonical face model, face textures, etc.).
7
- sdkAssetsBaseUrl: "https://cdn.vincentt.studio/assets/sdk/face/v1",
8
- loggerPrefix: "[vincentt-xr]:"
9
- };
10
- export {
11
- t as l
12
- };
@@ -1 +0,0 @@
1
- "use strict";const d=require("react/jsx-runtime"),l=require("react"),L=require("./index-DxshgBu0.cjs"),Me=require("three"),ce=require("./useFaceResults-hVUJYSEY.cjs"),je=require("./useXRModel-3DcUa28n.cjs"),G=require("./selectors-BLl2JUWW.cjs"),P=require("@react-three/fiber");function Ie(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const c=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,c.get?c:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const F=Ie(Me),le=l.createContext(null),de=()=>{const e=l.useContext(le);if(!e)throw new Error("useScreenSpace must be used within ScreenSpaceUI");return e},Q=l.createContext(null),De=()=>l.useContext(Q)??1,ue=(e,t,o,c,n)=>{const i=e/2,s=t/2,r=o.left*i+c.left,u=o.right*i-c.right,h=o.bottom*s+c.bottom,f=o.top*s-c.top,a=u-r,p=f-h,m=(r+u)/2,x=(h+f)/2,w=n[0]*a/2,T=n[1]*p/2;return{centerX:m,centerY:x,width:a,height:p,pivotX:w,pivotY:T}},Xe={left:0,right:0,top:0,bottom:0},Ae={left:0,right:0,top:0,bottom:0},ke=[0,0],Le=({anchors:e,offsets:t,pivot:o=ke,children:c})=>{const{width:n,height:i}=de(),s=l.useMemo(()=>({anchors:{...Xe,...e??{}},offsets:{...Ae,...t??{}}}),[e,t]),r=l.useMemo(()=>ue(n,i,s.anchors,s.offsets,o),[n,i,s,o]);l.useEffect(()=>{const a=s.anchors;a.left>a.right&&console.warn(`[ScreenTransform] inverted X axis: anchors.left (${a.left}) > anchors.right (${a.right})`),a.bottom>a.top&&console.warn(`[ScreenTransform] inverted Y axis: anchors.bottom (${a.bottom}) > anchors.top (${a.top})`),r.width<=0&&console.warn(`[ScreenTransform] zero or negative width (${r.width.toFixed(3)}) — anchors + offsets collapse the X extent`),r.height<=0&&console.warn(`[ScreenTransform] zero or negative height (${r.height.toFixed(3)}) — anchors + offsets collapse the Y extent`)},[s,r.width,r.height]);const u=o[0]!==0||o[1]!==0,h=u?[1,1,1]:[r.width,r.height,1],f=!u&&r.width>0&&r.height>0?r.width/r.height:null;return d.jsx("group",{position:[r.centerX-r.pivotX,r.centerY-r.pivotY,0],scale:h,renderOrder:L.RENDER_LAYERS.SCREEN_UI,children:d.jsx(Q.Provider,{value:f,children:c})})},J=({canvas:e,layout:t,media:o,mirrored:c,filter:n})=>{const i=Math.round(t.destination.width),s=Math.round(t.destination.height);e.width!==i&&(e.width=i),e.height!==s&&(e.height=s);const r=e.getContext("2d");r&&(r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,i,s),c&&(r.translate(i,0),r.scale(-1,1)),n&&(r.filter=n),r.drawImage(o,t.offsetX,t.offsetY,t.drawWidth,t.drawHeight),n&&(r.filter="none"),r.setTransform(1,0,0,1,0,0))},_e=5,ze=1,he=(e,t)=>t,We="brightness(2.2) contrast(1.5) saturate(1.25)",fe=({enabled:e,displayMirrored:t,imageRef:o,layout:c,mode:n,numFaces:i,selectedSource:s,sourceStream:r,videoRef:u})=>{const{session:h}=L.useXRContext(),f=l.useRef(null),a=l.useRef(!1),p=l.useRef(document.createElement("canvas")),{ready:m,node:x,error:w}=je.useXRModel(L.XRModel.FACE_TRACKER,{numFaces:i??(n==="head-binding"?ze:_e)}),[T,S]=l.useState("idle"),[y,C]=l.useState(null),M=e&&m&&!!x,I=ce.useFaceResults({node:M?x:null,enabled:M,selectedSource:s,onFrame:l.useCallback(()=>{C(null),S("ready")},[])});return l.useEffect(()=>{if(!e||!c)return;const b=()=>{const R=s==="image"?o.current:u.current;if(R){if(R instanceof HTMLImageElement){if(!R.complete||R.naturalWidth<=0||R.naturalHeight<=0)return}else if(R.readyState<2||R.videoWidth<=0||R.videoHeight<=0)return;J({canvas:p.current,layout:c,media:R,mirrored:t,filter:s==="webcam"?We:void 0})}};if(s==="image"){b();return}let g=0;const v=()=>{g=requestAnimationFrame(v),b()};return g=requestAnimationFrame(v),()=>cancelAnimationFrame(g)},[t,e,o,c,s,u]),l.useEffect(()=>{var X;if(!e){S("idle"),C(null),a.current=!1,f.current=null;return}if(!c){S("initializing");return}const b=(r==null?void 0:r.id)??(((X=u.current)==null?void 0:X.srcObject)instanceof MediaStream?u.current.srcObject.id:"none"),v=s==="webcam"?`webcam:${b}`:s;f.current!==v&&(a.current=!1,f.current=v);let R=!1;return(async()=>{try{if(S("initializing"),a.current||(await h.setFrameSource({canvas:p.current,sourceKind:s}),await h.start(),a.current=!0),R)return;C(null),S("initializing")}catch(A){if(R)return;S("error"),C(A instanceof Error?A.message:"Failed to initialize SDK face tracking")}})(),()=>{R=!0}},[e,c,s,h,r,u]),l.useEffect(()=>{!M&&e&&!w&&S("initializing")},[M,e,w]),l.useEffect(()=>{w&&(S("error"),C(w.message))},[w]),l.useEffect(()=>()=>{a.current=!1,h.stop()},[h]),{activeDelegate:"GPU",faces:I,status:T,error:y}},_=({children:e,config:t,style:o})=>d.jsx("div",{"data-render-target":t.name,style:{position:"absolute",inset:0,overflow:"hidden",background:t.clearColor,pointerEvents:t.pointerEvents??"none",zIndex:t.zIndex,opacity:t.hidden?0:1,...o},children:e}),me=({canvasRef:e,enabled:t=!0,fps:o=30,imageRef:c,layout:n,mirrored:i,sourceKind:s,videoRef:r})=>{l.useEffect(()=>{if(!t){const p=e.current,m=p==null?void 0:p.getContext("2d");p&&m&&m.clearRect(0,0,p.width,p.height);return}let u=0,h=0;const f=o>0?1e3/o:0,a=p=>{if(u=requestAnimationFrame(a),f>0&&p-h<f)return;h=p;const m=e.current;if(!m||!n)return;if(s==="image"){const w=c.current;if(!w||!w.complete||w.naturalWidth<=0||w.naturalHeight<=0)return;J({canvas:m,layout:n,media:w,mirrored:i});return}const x=r.current;!x||x.readyState<2||x.videoWidth<=0||x.videoHeight<=0||J({canvas:m,layout:n,media:x,mirrored:i})};return u=requestAnimationFrame(a),()=>{cancelAnimationFrame(u)}},[e,t,o,c,n,i,s,r])},ge=({canvasRef:e,imageRef:t,layer:o,layout:c,mirrored:n,sourceKind:i,videoRef:s})=>(me({canvasRef:e,imageRef:t,layout:c,mirrored:n,sourceKind:i,videoRef:s}),d.jsx(_,{config:o,children:d.jsx("canvas",{ref:e,style:{position:"absolute",inset:0,width:"100%",height:"100%",display:"block",background:"#000"}})})),Ne=({canvasRef:e,controlInsetTop:t,debugVisible:o,fps:c=15,imageRef:n,layer:i,layout:s,mirrored:r,sourceKind:u,videoRef:h,viewportSize:f})=>{me({canvasRef:e,enabled:o,fps:c,imageRef:n,layout:s,mirrored:r,sourceKind:u,videoRef:h});const a=Math.min(220,Math.max(120,f.width*.22)),p=f.width>0&&f.height>0?f.width/f.height:1,m=Math.min(f.height-24,Math.max(t??16,16));return d.jsx(_,{config:i,children:d.jsx("canvas",{ref:e,style:{position:"absolute",left:16,top:m,width:o?a:1,height:o?"auto":1,aspectRatio:`${p}`,opacity:o?.85:0,borderRadius:10,border:o?"1px solid rgba(255,255,255,0.16)":"none",pointerEvents:"none",objectFit:"contain",background:"#000"}})})},pe={display:"flex",alignItems:"center",justifyContent:"center",height:"100%",background:"#363636",color:"white",fontFamily:"monospace"},Ve=()=>d.jsx("div",{style:pe,children:"Loading..."}),qe=e=>d.jsx("div",{style:pe,children:e.error}),re={position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:10},ne={sceneColorTexture:null,sceneDepthTexture:null},He=({onRenderOutputs:e,renderOutputs:t,size:o})=>{const{camera:c,gl:n,scene:i,size:s}=P.useThree(),r=Math.max(1,Math.round((o==null?void 0:o.width)??s.width)),u=Math.max(1,Math.round((o==null?void 0:o.height)??s.height)),h=!!(t.sceneColor||t.sceneDepth),f=l.useMemo(()=>{if(!h)return null;const a=new F.WebGLRenderTarget(r,u,{colorSpace:F.SRGBColorSpace,depthBuffer:!0,stencilBuffer:!1});return t.sceneDepth&&(a.depthTexture=new F.DepthTexture(r,u),a.depthTexture.format=F.DepthFormat,a.depthTexture.type=F.UnsignedShortType),a},[h,u,t.sceneDepth,r]);return l.useEffect(()=>{if(!f){e==null||e(ne);return}return e==null||e({sceneColorTexture:t.sceneColor?f.texture:null,sceneDepthTexture:t.sceneDepth&&f.depthTexture?f.depthTexture:null}),()=>{var a;f.dispose(),(a=f.depthTexture)==null||a.dispose(),e==null||e(ne)}},[e,t.sceneColor,t.sceneDepth,f]),P.useFrame(()=>{if(!f)return;const a=[];t.excludeScreenUI!==!1&&i.traverse(x=>{x.visible&&x.renderOrder>=L.RENDER_LAYERS.SCREEN_UI&&(a.push(x),x.visible=!1)});const p=n.getRenderTarget(),m=n.xr.enabled;n.xr.enabled=!1,n.setRenderTarget(f),n.clear(),n.render(i,c),n.setRenderTarget(p),n.xr.enabled=m,a.forEach(x=>{x.visible=!0})},-100),null},xe=({style:e,canvasProps:t,children:o,loadingComponent:c,loadingTransitionDuration:n,errorComponent:i,renderTargetSize:s,renderOutputs:r={},onRenderOutputs:u})=>{const h=l.useRef(null),f=l.useRef(null),a=l.useRef(null),p=l.useRef(!1),{session:m}=L.useXRContext(),x=G.useXRReady(),w=G.useXRError(),[T,S]=l.useState(!0);return l.useEffect(()=>{if(s){m._setRenderSize(Math.round(s.width),Math.round(s.height));return}const y=(b,g)=>{b<=0||g<=0||m._setRenderSize(Math.round(b),Math.round(g))},C=()=>{!f.current||p.current||(p.current=!0,m._setRenderTarget(f.current))},M=(b,g)=>{a.current!==null&&cancelAnimationFrame(a.current),a.current=requestAnimationFrame(()=>{a.current=null,y(b,g)})},I=new ResizeObserver(b=>{const g=b[0];if(!g)return;const{width:v,height:R}=g.contentRect;C(),M(v,R)});return h.current&&I.observe(h.current),C(),()=>{I.disconnect(),a.current!==null&&(cancelAnimationFrame(a.current),a.current=null),p.current=!1}},[s,m]),l.useEffect(()=>{x&&(n?setTimeout(()=>{S(!1)},n):S(!1))},[x,n]),d.jsxs("div",{id:"vincentt-xr-container",ref:h,style:{width:"100%",height:"100%",...e,position:"relative"},children:[T&&d.jsx("div",{style:re,children:c||d.jsx(Ve,{})}),w&&d.jsx("div",{style:re,children:i||d.jsx(qe,{error:w.message})}),d.jsxs(P.Canvas,{id:"vincentt-xr-canvas",ref:f,dpr:[1,3],gl:{alpha:!0,preserveDrawingBuffer:!1,antialias:!0,premultipliedAlpha:!1,toneMapping:F.NoToneMapping},...t,onCreated:y=>{s?m._setRenderSize(Math.round(s.width),Math.round(s.height)):m._setRenderTarget(f.current),m._setR3FState({renderer:y.gl,scene:y.scene,camera:y.camera}),y.gl.outputColorSpace=F.SRGBColorSpace,t!=null&&t.onCreated&&t.onCreated(y)},children:[d.jsx(He,{onRenderOutputs:u,renderOutputs:r,size:s}),o]})]})},be=l.createContext(null),we=l.createContext(null),Be={audio:!1,video:{facingMode:"user",frameRate:{ideal:30,max:60}}},Ue={name:"viewport-live",clearColor:"#000000",pointerEvents:"none",zIndex:0},$e={name:"viewport-ui",clearColor:"transparent",pointerEvents:"auto",zIndex:5},Ye={name:"viewport-scene",clearColor:"transparent",pointerEvents:"auto",zIndex:1},k={webcam:{icon:"◉",label:"Webcam"},image:{icon:"▣",label:"Images"},video:{icon:"▶",label:"Videos"}},Z=({children:e})=>d.jsx(d.Fragment,{children:e});Z.displayName="XRViewport.Scene";const O=({children:e})=>d.jsx(d.Fragment,{children:e});O.displayName="XRViewport.Overlay";const Ke=e=>{if(!e)return{width:0,height:0};const t=e.getBoundingClientRect();return{width:t.width||e.clientWidth,height:t.height||e.clientHeight}},Ge=e=>{const[t,o]=l.useState({width:0,height:0});return l.useLayoutEffect(()=>{const c=e.current;if(!c)return;let n=0;const i=()=>{const h=Ke(c);o(f=>f.width===h.width&&f.height===h.height?f:h)};i(),n=requestAnimationFrame(i);const s=new ResizeObserver(()=>{i(),n&&cancelAnimationFrame(n),n=requestAnimationFrame(i)});s.observe(c);const r=window.visualViewport,u=()=>{i(),n&&cancelAnimationFrame(n),n=requestAnimationFrame(i)};return window.addEventListener("resize",u),window.addEventListener("orientationchange",u),r==null||r.addEventListener("resize",u),r==null||r.addEventListener("scroll",u),()=>{n&&cancelAnimationFrame(n),s.disconnect(),window.removeEventListener("resize",u),window.removeEventListener("orientationchange",u),r==null||r.removeEventListener("resize",u),r==null||r.removeEventListener("scroll",u)}},[e]),t},oe=e=>{e&&(e.pause(),e.removeAttribute("src"),e.srcObject=null,e.load())},ie=e=>{e&&e.removeAttribute("src")},Pe=({enabled:e,imageAsset:t,selectedSource:o,videoAsset:c})=>{const n=l.useRef(null),i=l.useRef(null),[s,r]=l.useState(null),[u,h]=l.useState({width:0,height:0}),[f,a]=l.useState("idle"),[p,m]=l.useState(null);return l.useEffect(()=>{if(!e){oe(n.current),ie(i.current),r(null),h({width:0,height:0}),a("idle"),m(null);return}let x=!1,w=null;const T=(b,g)=>{x||(h({width:b,height:g}),a("ready"),m(null))},S=()=>{oe(n.current),ie(i.current),w==null||w.getTracks().forEach(b=>b.stop()),w=null,r(null)},y=async()=>{a("requesting");const b=await navigator.mediaDevices.getUserMedia(Be);if(x){b.getTracks().forEach(v=>v.stop());return}w=b,r(b);const g=n.current;g&&(g.srcObject=b,g.muted=!0,g.playsInline=!0,g.autoplay=!0,await g.play(),T(g.videoWidth,g.videoHeight))},C=async b=>{a("requesting"),r(null);const g=n.current;g&&(g.src=b,g.muted=!0,g.loop=!0,g.playsInline=!0,g.autoplay=!0,g.crossOrigin="anonymous",await g.play(),T(g.videoWidth,g.videoHeight))},M=async b=>{a("requesting"),r(null);const g=i.current;g&&(await new Promise((v,R)=>{g.onload=()=>v(),g.onerror=()=>R(new Error("Unable to load image")),g.src=b}),T(g.naturalWidth,g.naturalHeight))};return S(),(async()=>{try{if(o==="webcam"){await y();return}if(o==="video"){if(!(c!=null&&c.src))throw new Error("Missing video source");await C(c.src);return}if(!(t!=null&&t.src))throw new Error("Missing image source");await M(t.src)}catch(b){if(x)return;a("error"),m(b instanceof Error?b.message:`Unable to initialize ${o}`)}})(),()=>{x=!0,S()}},[e,t,o,c]),{videoRef:n,imageRef:i,stream:s,mediaSize:u,status:f,error:p}},Je=({enabled:e,imageRef:t,selectedSource:o,status:c,videoRef:n})=>{const[i,s]=l.useState(null);return l.useEffect(()=>{if(!e||c!=="ready"){s(h=>(h==null||h.dispose(),null));return}const r=o==="image"?t.current:n.current;if(!r)return;const u=o==="image"?new F.Texture(r):new F.VideoTexture(r);return u.colorSpace=F.SRGBColorSpace,u.minFilter=F.LinearFilter,u.magFilter=F.LinearFilter,u.generateMipmaps=!1,u.needsUpdate=!0,s(h=>(h==null||h.dispose(),u)),()=>{u.dispose()}},[e,t,o,c,n]),i},Qe=(e,t)=>e==="auto"?t==="webcam"?"cover":"contain":e,Ze=({imageOptions:e,initialImageId:t,initialSource:o,initialVideoId:c,source:n,videoOptions:i})=>{var f,a,p,m;const s=(n==null?void 0:n.kind)??o??"webcam",r=s==="image"&&e.length===0||s==="video"&&i.length===0?"webcam":s,u=(n==null?void 0:n.kind)==="image"?n.assetId??((f=e[0])==null?void 0:f.id)??"":t??((a=e[0])==null?void 0:a.id)??"",h=(n==null?void 0:n.kind)==="video"?n.assetId??((p=i[0])==null?void 0:p.id)??"":c??((m=i[0])==null?void 0:m.id)??"";return{selectedSource:r,selectedImageId:u,selectedVideoId:h}},Oe=(e,t,o)=>{if(e.width<=0||e.height<=0||t.width<=0||t.height<=0)return null;const c=o==="contain"?Math.min(t.width/e.width,t.height/e.height):Math.max(t.width/e.width,t.height/e.height),n=e.width*c,i=e.height*c,s=(t.width-n)*.5,r=(t.height-i)*.5;return{source:e,destination:t,drawWidth:n,drawHeight:i,offsetX:s,offsetY:r,scale:c}},et=(e,t)=>{if(e==="dom")return{sceneContent:null,overlayContent:t};let o=null,c=null;const n=[];return l.Children.forEach(t,i=>{var r;if(!l.isValidElement(i)){i!=null&&n.push(i);return}const s=(r=i.type)==null?void 0:r.displayName;if(s===Z.displayName){o=i.props.children;return}if(s===O.displayName){c=i.props.children;return}n.push(i)}),!c&&n.length>0&&(c=n),{sceneContent:o,overlayContent:c}},ae=(e,t)=>typeof e=="function"?e(t):e,tt=()=>l.useContext(be),rt=()=>l.useContext(we),nt=({imageRef:e,selectedSource:t,videoRef:o})=>d.jsxs(d.Fragment,{children:[d.jsx("video",{ref:o,style:{position:"absolute",width:1,height:1,opacity:t==="image"?0:.001,pointerEvents:"none"}}),d.jsx("img",{ref:e,alt:"",style:{position:"absolute",width:1,height:1,opacity:t==="image"?.001:0,pointerEvents:"none"}})]}),se=({dock:e,label:t,onChange:o,options:c,value:n})=>d.jsx("div",{style:{position:"absolute",top:e==="top-left"?74:void 0,bottom:e==="bottom-left"?74:void 0,left:16,zIndex:5,maxWidth:"calc(100vw - 32px)",padding:10,borderRadius:14,background:"rgba(15, 23, 42, 0.72)",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)"},children:d.jsxs("label",{style:{display:"grid",gap:6,color:"#e5eefb",fontSize:12,fontWeight:700},children:[d.jsx("span",{children:t}),d.jsx("select",{value:n,onChange:i=>o(i.target.value),style:{minWidth:180,maxWidth:"calc(100vw - 52px)",height:36,borderRadius:10,border:"1px solid rgba(255,255,255,0.12)",background:"rgba(255,255,255,0.06)",color:"#e5eefb",padding:"0 10px"},children:c.map(i=>d.jsx("option",{value:i.id,style:{color:"#111827"},children:i.label},i.id))})]})}),ot=({dock:e,imageOptions:t,selectedImageId:o,selectedSource:c,selectedVideoId:n,setSelectedImageId:i,setSelectedSource:s,setSelectedVideoId:r,showMediaControls:u,videoOptions:h})=>{const[f,a]=l.useState(!1),p=["webcam","image","video"].filter(m=>m==="image"?t.length>0:m==="video"?h.length>0:!0);return u?f?d.jsx("button",{type:"button",onClick:()=>a(!1),"aria-label":"Open media controls",title:"Open media controls",style:{position:"absolute",top:e==="top-left"?16:void 0,bottom:e==="bottom-left"?16:void 0,left:16,zIndex:5,width:40,height:40,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(15, 23, 42, 0.72)",color:"#e5eefb",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)",cursor:"pointer"},children:"≡"}):d.jsxs(d.Fragment,{children:[d.jsxs("div",{style:{position:"absolute",top:e==="top-left"?16:void 0,bottom:e==="bottom-left"?16:void 0,left:16,zIndex:5,display:"inline-flex",alignItems:"center",gap:8,maxWidth:"calc(100vw - 32px)"},children:[d.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:8,padding:8,borderRadius:999,background:"rgba(15, 23, 42, 0.72)",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)",overflowX:"auto"},children:p.map(m=>{const x=m===c;return d.jsxs("button",{type:"button",onClick:()=>s(m),"aria-pressed":x,title:k[m].label,style:{border:"none",borderRadius:999,minWidth:42,height:42,padding:"0 12px",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:8,background:x?"rgba(56, 189, 248, 0.18)":"rgba(255,255,255,0.04)",color:x?"#e0f2fe":"rgba(229,238,251,0.82)",cursor:"pointer",flex:"0 0 auto"},children:[d.jsx("span",{style:{fontSize:14,lineHeight:1},children:k[m].icon}),d.jsx("span",{style:{fontSize:12,fontWeight:700,letterSpacing:"0.01em"},children:k[m].label})]},m)})}),d.jsx("button",{type:"button",onClick:()=>a(!0),"aria-label":"Close media controls",title:"Close media controls",style:{width:40,height:40,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(15, 23, 42, 0.72)",color:"#e5eefb",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)",cursor:"pointer",flex:"0 0 auto"},children:"×"})]}),c==="image"&&t.length>0&&d.jsx(se,{dock:e,label:"Image Asset",options:t,value:o,onChange:i}),c==="video"&&h.length>0&&d.jsx(se,{dock:e,label:"Video Asset",options:h,value:n,onChange:r})]}):null},it=({enabled:e,selectedSource:t})=>{const o=G.useXRModelNode(L.XRModel.FACE_TRACKER);return{faces:ce.useFaceResults({node:o,enabled:e,selectedSource:t}),trackerStatus:o?"ready":"idle"}},ee=({children:e,fitMode:t="auto",imageOptions:o=[],initialImageId:c,initialMirrored:n=!0,initialSource:i="webcam",initialVideoId:s,mediaStrategy:r="internal",mediaDock:u="bottom-left",mode:h="dom",previewMode:f="finalColor",renderOutputs:a={},showMediaControlsByDefault:p=!0,source:m,style:x,videoOptions:w=[]})=>{const T=l.useRef(null),S=l.useRef(null),y=Ge(T),C=l.useMemo(()=>Ze({imageOptions:o,initialImageId:c,initialSource:i,initialVideoId:s,source:m,videoOptions:w}),[o,c,i,s,m,w]),[M,I]=l.useState(n),[b,g]=l.useState(p),[v,R]=l.useState(C.selectedSource),[z,X]=l.useState(C.selectedImageId),[A,B]=l.useState(C.selectedVideoId),[D,ve]=l.useState({sceneColorTexture:null,sceneDepthTexture:null}),j=r==="internal";l.useEffect(()=>{m&&(R(C.selectedSource),X(C.selectedImageId),B(C.selectedVideoId))},[C,m]);const W=o.find(K=>K.id===z)??o[0],N=w.find(K=>K.id===A)??w[0],E=Pe({enabled:j,imageAsset:W,selectedSource:v,videoAsset:N}),U=Qe(t,v),V=l.useMemo(()=>Oe(E.mediaSize,y,U),[E.mediaSize,U,y]),$=Je({enabled:!!(a.mediaColor||a.finalColor),imageRef:E.imageRef,selectedSource:v,status:E.status,videoRef:E.videoRef}),Y=he(v,M),q=fe({displayMirrored:Y,enabled:j&&E.status==="ready"&&V!==null,imageRef:E.imageRef,layout:V,selectedSource:v,sourceStream:E.stream,videoRef:E.videoRef}),te=it({enabled:!j,selectedSource:v}),Re=v==="image"?`${k.image.label}: ${(W==null?void 0:W.label)??""}`:v==="video"?`${k.video.label}: ${(N==null?void 0:N.label)??""}`:k.webcam.label,H={activeDelegate:j?q.activeDelegate:null,faces:j?q.faces:te.faces,imageOptions:o,layout:V,mediaError:E.error,mediaFitMode:U,mediaLabel:Re,mediaStatus:E.status,mirrored:Y,selectedImageId:z,selectedSource:v,selectedVideoId:A,setMirrored:I,setSelectedImageId:X,setSelectedSource:R,setSelectedVideoId:B,setShowMediaControls:g,showMediaControls:b,trackerError:j?q.error:null,trackerStatus:j?q.status:te.trackerStatus,videoOptions:w,viewportSize:y,mediaSize:E.mediaSize},Ce=l.useMemo(()=>({requested:a,previewMode:f,mediaColorTexture:$,sceneColorTexture:D.sceneColorTexture,finalColorTexture:a.finalColor?D.sceneColorTexture:null,sceneDepthTexture:D.sceneDepthTexture,estimatedDepthTexture:null,available:{mediaColor:$!==null,sceneColor:D.sceneColorTexture!==null,finalColor:!!(a.finalColor&&D.sceneColorTexture),sceneDepth:D.sceneDepthTexture!==null,estimatedDepth:!1}}),[$,f,a,D]),Se=typeof e=="function"?e(H):e,{sceneContent:ye,overlayContent:Ee}=et(h,Se),Te=ae(ye,H),Fe=ae(Ee,H);return d.jsx(be.Provider,{value:H,children:d.jsx(we.Provider,{value:Ce,children:d.jsxs("div",{ref:T,style:{position:"fixed",inset:0,overflow:"hidden",background:"#000",...x},children:[d.jsx(nt,{imageRef:E.imageRef,selectedSource:v,videoRef:E.videoRef}),h==="dom"&&j&&d.jsx(ge,{canvasRef:S,imageRef:E.imageRef,videoRef:E.videoRef,layer:Ue,layout:V,mirrored:Y,sourceKind:v==="image"?"image":"video"}),(h==="r3f"||h==="hybrid")&&d.jsx(_,{config:Ye,children:d.jsx(xe,{onRenderOutputs:ve,renderOutputs:{sceneColor:a.sceneColor||a.finalColor,sceneDepth:a.sceneDepth},renderTargetSize:y,style:{width:"100%",height:"100%"},children:Te})}),d.jsxs(_,{config:$e,children:[j&&d.jsx(ot,{dock:u,imageOptions:o,selectedImageId:z,selectedSource:v,selectedVideoId:A,setSelectedImageId:X,setSelectedSource:R,setSelectedVideoId:B,showMediaControls:b,videoOptions:w}),Fe]})]})})})};ee.Scene=Z;ee.Overlay=O;exports.ScreenRectAspectContext=Q;exports.ScreenSpaceContext=le;exports.ScreenTransform=Le;exports.XRLayer=_;exports.XRMediaSurface=ge;exports.XRScene=xe;exports.XRTrackingOverlay=Ne;exports.XRViewport=ee;exports.computeScreenTransform=ue;exports.resolveCalibrationFaceDisplayMirrored=he;exports.useCalibrationFaceTracker=fe;exports.useScreenRectAspect=De;exports.useScreenSpace=de;exports.useXRViewportRenderOutputs=rt;exports.useXRViewportState=tt;
@@ -1 +0,0 @@
1
- "use strict";const t={assetStorageEndpoint:"https://cdn.vincentt.studio",sdkAssetsBaseUrl:"https://cdn.vincentt.studio/assets/sdk/face/v1",loggerPrefix:"[vincentt-xr]:"};exports.libConfig=t;