@vincentt-xr/sdk 2.0.0-alpha.0 → 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 (362) hide show
  1. package/GROUNDING.md +1813 -27
  2. package/dist/{DebuggerUI-CEfdddkZ.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-Dgop6Q6o.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 +22 -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 +74 -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 +4 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +9 -5
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -6
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +15 -0
  35. package/dist/components/FaceWarp3D/defaults.d.ts +37 -0
  36. package/dist/components/FaceWarp3D/index.d.ts +3 -0
  37. package/dist/components/FaceWarp3D/warp.d.ts +13 -0
  38. package/dist/components/HandJoints2D/index.d.ts +6 -0
  39. package/dist/components/HandTracker/index.d.ts +2 -2
  40. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  41. package/dist/components/HandTracking2D/index.d.ts +5 -0
  42. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  43. package/dist/components/HandTracking3D/index.d.ts +6 -0
  44. package/dist/components/LightObject/index.d.ts +20 -0
  45. package/dist/components/LookAt/index.d.ts +23 -0
  46. package/dist/components/MeshRenderer/index.d.ts +58 -0
  47. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  48. package/dist/components/PinToMesh/index.d.ts +47 -0
  49. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  50. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  51. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  52. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  53. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  54. package/dist/components/Screen2D/index.d.ts +5 -0
  55. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  56. package/dist/components/ScreenGlass/index.d.ts +5 -0
  57. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGlass/types.d.ts +10 -0
  59. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  60. package/dist/components/ScreenGradient/index.d.ts +5 -0
  61. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  62. package/dist/components/ScreenGradient/types.d.ts +19 -0
  63. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  64. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  65. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  66. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  67. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  68. package/dist/components/ScreenImage/fit.d.ts +52 -0
  69. package/dist/components/ScreenImage/index.d.ts +8 -0
  70. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  71. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  72. package/dist/components/ScreenImage/source.d.ts +16 -0
  73. package/dist/components/ScreenImage/types.d.ts +37 -0
  74. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  75. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  76. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  77. package/dist/components/ScreenShape/index.d.ts +5 -0
  78. package/dist/components/ScreenShape/types.d.ts +41 -0
  79. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  80. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  81. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  82. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  83. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  84. package/dist/components/ScreenText/constants.d.ts +5 -0
  85. package/dist/components/ScreenText/index.d.ts +6 -0
  86. package/dist/components/ScreenText/types.d.ts +31 -0
  87. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  88. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  89. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  90. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  91. package/dist/components/TextLabel/alignment.d.ts +4 -0
  92. package/dist/components/TextLabel/bend.d.ts +9 -0
  93. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  94. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  95. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  96. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  97. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  98. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  99. package/dist/components/TextLabel/constants.d.ts +2 -0
  100. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  101. package/dist/components/TextLabel/index.d.ts +2 -62
  102. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  103. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  104. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  105. package/dist/components/TextLabel/types.d.ts +227 -0
  106. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  107. package/dist/components/Transform3D/index.d.ts +30 -0
  108. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  109. package/dist/components/XRScene/index.d.ts +14 -3
  110. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  111. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  112. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  113. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  114. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  115. package/dist/components/XRViewport/constants.d.ts +24 -0
  116. package/dist/components/XRViewport/contexts.d.ts +6 -0
  117. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  118. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  119. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  120. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  121. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  122. package/dist/components/XRViewport/index.d.ts +3 -101
  123. package/dist/components/XRViewport/layout.d.ts +16 -0
  124. package/dist/components/XRViewport/slots.d.ts +16 -0
  125. package/dist/components/XRViewport/types.d.ts +89 -0
  126. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  127. package/dist/components/index.d.ts +19 -0
  128. package/dist/contexts-BKvTIayr.cjs +1 -0
  129. package/dist/contexts-Bk5zz_VR.js +214 -0
  130. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  131. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  132. package/dist/debug-ui/default-setting.cjs +21 -0
  133. package/dist/debug-ui/default-setting.js +777 -0
  134. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  135. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  136. package/dist/debug-ui/face-warp-3d/index.d.ts +6 -0
  137. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  138. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  139. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  140. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  141. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  142. package/dist/debug-ui/index.d.ts +46 -0
  143. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  144. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  145. package/dist/debug-ui/media-source/index.d.ts +6 -0
  146. package/dist/debug-ui/media-source/media-preset.d.ts +9 -0
  147. package/dist/debug-ui/media-source/session.d.ts +12 -0
  148. package/dist/debug-ui/media-source.cjs +1 -0
  149. package/dist/debug-ui/media-source.js +9 -0
  150. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  151. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  152. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  153. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  154. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  155. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  156. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  157. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  158. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  159. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  160. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  161. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  162. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  163. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  164. package/dist/debug-ui/screen-image-settings/index.d.ts +9 -0
  165. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  166. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  167. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  168. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  169. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  170. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  172. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  173. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  174. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  175. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  176. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  177. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  178. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  179. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  180. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  181. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  182. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  183. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  184. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  185. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  186. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  187. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  188. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  189. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  190. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  191. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  192. package/dist/debug-ui/settings-panel/index.d.ts +38 -0
  193. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  194. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  195. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  196. package/dist/debug-ui.cjs +10 -0
  197. package/dist/debug-ui.js +8861 -0
  198. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  199. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  200. package/dist/entries/all.d.ts +1 -0
  201. package/dist/entries/core.d.ts +55 -4
  202. package/dist/entries/face-effects.d.ts +12 -8
  203. package/dist/entries/internal.d.ts +1 -1
  204. package/dist/entries/low-level.d.ts +21 -4
  205. package/dist/entries/scene-object.d.ts +10 -0
  206. package/dist/entries/tracking.d.ts +25 -2
  207. package/dist/face-action/index.d.ts +34 -0
  208. package/dist/face-attribute-expression/index.d.ts +10 -0
  209. package/dist/face-effects.cjs +1 -252
  210. package/dist/face-effects.js +1404 -2613
  211. package/dist/face-info/blendshapes.d.ts +3 -0
  212. package/dist/face-info/derive.d.ts +8 -0
  213. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  214. package/dist/face-info/getFaceInfo.d.ts +8 -0
  215. package/dist/face-info/index.d.ts +8 -0
  216. package/dist/face-info/landmarks.d.ts +21 -0
  217. package/dist/face-info/types.d.ts +52 -0
  218. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  219. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  220. package/dist/hand/handJoints2d.d.ts +49 -0
  221. package/dist/hand/handTracking2d.d.ts +33 -0
  222. package/dist/hand/handTracking2dController.d.ts +65 -0
  223. package/dist/hand/handTracking3d.d.ts +52 -0
  224. package/dist/hooks/faceResults.d.ts +1 -1
  225. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  226. package/dist/hooks/useFaceAction.d.ts +3 -0
  227. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  228. package/dist/hooks/useFaceDetection.d.ts +18 -0
  229. package/dist/hooks/useFaceInfo.d.ts +7 -0
  230. package/dist/hooks/useFaceInfos.d.ts +15 -0
  231. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  232. package/dist/hooks/useFrameCapture.d.ts +18 -0
  233. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  234. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  235. package/dist/hooks/useTrackerContext.d.ts +2 -2
  236. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  237. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  238. package/dist/index-82aENaRq.cjs +1 -0
  239. package/dist/{index-BD-JWMjE.js → index-BgQAX8rs.js} +198 -134
  240. package/dist/index-CEc1CAmB.cjs +1 -0
  241. package/dist/index-CTHeBQOs.js +178 -0
  242. package/dist/index-D4bLzBr6.cjs +1 -0
  243. package/dist/index-DSpzjuqd.cjs +1 -0
  244. package/dist/index-Di70KWuY.js +2049 -0
  245. package/dist/index-DzEzkBIH.cjs +17 -0
  246. package/dist/{index-CYMj26Ej.js → index-JygePOwo.js} +565 -498
  247. package/dist/index-UC0Ux38E.js +111 -0
  248. package/dist/{internal-KOKJDxCG.js → internal-DuMPpcbp.js} +86 -80
  249. package/dist/internal-i2JkM85N.cjs +1 -0
  250. package/dist/internal.cjs +1 -1
  251. package/dist/internal.js +2 -2
  252. package/dist/low-level.cjs +1 -1
  253. package/dist/low-level.js +959 -632
  254. package/dist/main.cjs +1 -1
  255. package/dist/main.js +556 -455
  256. package/dist/material/MaterialFill.d.ts +20 -0
  257. package/dist/material/MeshMaterial.d.ts +14 -0
  258. package/dist/material/index.d.ts +2 -0
  259. package/dist/models/Body/index.d.ts +1 -1
  260. package/dist/models/Face/index.d.ts +1 -0
  261. package/dist/models/Face/rotation.d.ts +3 -0
  262. package/dist/models/Hand/HandTracking.d.ts +2 -0
  263. package/dist/render/layerStack.d.ts +29 -0
  264. package/dist/render/renderGroups.d.ts +47 -0
  265. package/dist/render/renderPasses.d.ts +18 -0
  266. package/dist/renderGroups-C9QJrAXu.js +152 -0
  267. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  268. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  269. package/dist/renderLayers-zrK2pv5O.js +13 -0
  270. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  271. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  272. package/dist/scene-object/index.d.ts +146 -0
  273. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  274. package/dist/scene-object.cjs +1 -0
  275. package/dist/scene-object.js +40 -0
  276. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  277. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  278. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  279. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  280. package/dist/screen2d/coordinates.d.ts +87 -0
  281. package/dist/screen2d/index.d.ts +7 -0
  282. package/dist/screen2d/material-runtime.d.ts +32 -0
  283. package/dist/screen2d/screenTransform.d.ts +47 -0
  284. package/dist/screen2d/smoothing.d.ts +5 -0
  285. package/dist/screen2d/texture.d.ts +10 -0
  286. package/dist/screen2d/transform.d.ts +25 -0
  287. package/dist/screen2d/types.d.ts +90 -0
  288. package/dist/{selectors-Bub0o3qy.cjs → selectors-2QvO5RYY.cjs} +1 -1
  289. package/dist/{selectors-BHO6TnoC.js → selectors-Dw3C-gSk.js} +5 -5
  290. package/dist/services/MetricsCollector/index.d.ts +7 -1
  291. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  292. package/dist/session-BChR4TgK.cjs +31 -0
  293. package/dist/session-C1StwN0f.js +363 -0
  294. package/dist/texture/animatedTexture.d.ts +61 -0
  295. package/dist/texture/animationMath.d.ts +8 -0
  296. package/dist/texture/sourceResolver.d.ts +30 -0
  297. package/dist/tracking.cjs +1 -1
  298. package/dist/tracking.js +582 -298
  299. package/dist/types/face.d.ts +1 -13
  300. package/dist/types/hand-tracking.d.ts +8 -0
  301. package/dist/types/index.d.ts +0 -1
  302. package/dist/types/nodes.d.ts +4 -1
  303. package/dist/types/session.d.ts +2 -0
  304. package/dist/types/tracking.d.ts +8 -2
  305. package/dist/types/util-types.d.ts +1 -1
  306. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  307. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  308. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  309. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  310. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  311. package/dist/utils/integrity.d.ts +4 -25
  312. package/dist/utils/landmarkBounds.d.ts +1 -1
  313. package/dist/utils/logger.d.ts +2 -2
  314. package/dist/x-Co8jPhP0.js +127 -0
  315. package/dist/x-KC8E4Gaj.cjs +41 -0
  316. package/docs/MIGRATION_GUIDE.md +589 -0
  317. package/docs/SDK_DOCUMENTATION.md +1155 -0
  318. package/docs/api/audio.mdx +36 -0
  319. package/docs/api/behavior-components.mdx +164 -0
  320. package/docs/api/capture-recording.mdx +103 -0
  321. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  322. package/docs/api/face-actions.mdx +104 -0
  323. package/docs/api/face-attribute-expression.mdx +87 -0
  324. package/docs/api/face-binding-anchors.mdx +53 -0
  325. package/docs/api/face-effects.mdx +19 -0
  326. package/docs/api/face-info.mdx +112 -0
  327. package/docs/api/face-mesh.mdx +98 -0
  328. package/docs/api/face-painting.mdx +33 -0
  329. package/docs/api/face-retouching.mdx +73 -0
  330. package/docs/api/material-render-state.mdx +132 -0
  331. package/docs/api/runtime-3d.mdx +311 -0
  332. package/docs/api/scene-object-store.mdx +213 -0
  333. package/docs/api/screen-image.mdx +41 -0
  334. package/docs/api/screen-shape.mdx +64 -0
  335. package/docs/api/screen-space-coordinates.mdx +41 -0
  336. package/docs/api/screen-text.mdx +39 -0
  337. package/docs/api/texture-sources.mdx +55 -0
  338. package/docs/api/trackers.mdx +46 -0
  339. package/docs/docs.json +70 -0
  340. package/docs/examples/scene-object-recipes.mdx +194 -0
  341. package/docs/guides/harness-debug-ui.mdx +139 -0
  342. package/docs/inspector/hierarchy-panel.mdx +51 -0
  343. package/docs/inspector/object-inspector-panel.mdx +51 -0
  344. package/docs/introduction.mdx +121 -0
  345. package/docs/scene-objects/overview.mdx +127 -0
  346. package/docs/scene-objects/render-groups.mdx +77 -0
  347. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  348. package/docs/texture-api-consumer.md +58 -0
  349. package/package.json +55 -7
  350. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  351. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  352. package/dist/index-B5J4gzn2.cjs +0 -1
  353. package/dist/index-BVBVg96G.cjs +0 -1
  354. package/dist/index-DtwHElmG.js +0 -157
  355. package/dist/index-PtFmD6B8.cjs +0 -1
  356. package/dist/internal-DH5d1Xnq.cjs +0 -1
  357. package/dist/modules/XRClient/index.d.ts +0 -9
  358. package/dist/modules/index.d.ts +0 -1
  359. package/dist/services/ApiService.d.ts +0 -12
  360. package/dist/types/client.d.ts +0 -3
  361. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  362. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
@@ -1,6 +1,18 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { TrackingTarget } from '../../types/tracking';
2
+ import { FaceCustomAnchorPoint, FaceTarget, TrackingTarget } from '../../types/tracking';
3
3
  import * as THREE from "three";
4
+ export type TrackingAnchorSettings = {
5
+ target: FaceTarget;
6
+ customAnchorPoint: FaceCustomAnchorPoint;
7
+ offset: {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ };
12
+ smoothing: number;
13
+ followFaceRoll: boolean;
14
+ };
15
+ export declare const DEFAULT_TRACKING_ANCHOR: TrackingAnchorSettings;
4
16
  /**
5
17
  * Frame-rate-independent lerp factor for a given smoothing rate and frame
6
18
  * delta: `alpha = 1 - e^(-smoothing*dt)`. Same rate produces the same visual
@@ -45,6 +57,8 @@ export type OneEuroState = {
45
57
  * each axis independently. On the first sample it seeds without smoothing.
46
58
  */
47
59
  export declare const stepOneEuro: (state: OneEuroState, sample: THREE.Vector3, dt: number, minCutoff: number, beta: number, dcutoff: number) => OneEuroState;
60
+ /** Apply the SDK's tuned One Euro parameters for a public smoothing value. */
61
+ export declare const stepTrackingSmoothing: (state: OneEuroState, sample: THREE.Vector3, dt: number, smoothing: number) => OneEuroState;
48
62
  type TrackingAnchorProps = PropsWithChildren & {
49
63
  /**
50
64
  * Landmark/joint to attach to. The namespace prefix (`face.`, `hand.`,
@@ -52,6 +66,8 @@ type TrackingAnchorProps = PropsWithChildren & {
52
66
  * mismatched anchors render `null` and emit a console warning.
53
67
  */
54
68
  target: TrackingTarget;
69
+ /** Face-local point used only when target is `face.custom`. */
70
+ customAnchorPoint?: FaceCustomAnchorPoint;
55
71
  /** Optional offset applied in the tracker's local frame after resolution. */
56
72
  offset?: [number, number, number];
57
73
  /**
@@ -70,5 +86,5 @@ type TrackingAnchorProps = PropsWithChildren & {
70
86
  */
71
87
  smoothing?: number;
72
88
  };
73
- export declare const TrackingAnchor: ({ target, offset, smoothing, children, }: TrackingAnchorProps) => import("react/jsx-runtime").JSX.Element | null;
89
+ export declare const TrackingAnchor: ({ target, customAnchorPoint, offset, smoothing, children, }: TrackingAnchorProps) => import("react/jsx-runtime").JSX.Element | null;
74
90
  export {};
@@ -0,0 +1,30 @@
1
+ import { ReactNode } from 'react';
2
+ import { Group } from 'three';
3
+ export type Transform3DVector = {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ };
8
+ export type Transform3DSettings = {
9
+ enabled: boolean;
10
+ linked: {
11
+ position: boolean;
12
+ rotation: boolean;
13
+ scale: boolean;
14
+ };
15
+ showTransformControls: boolean;
16
+ transformControlMode: "translate" | "rotate" | "scale";
17
+ transformControlSpace: "local" | "world";
18
+ position: Transform3DVector;
19
+ rotation: Transform3DVector;
20
+ scale: Transform3DVector;
21
+ visible: boolean;
22
+ };
23
+ export type Transform3DProps = {
24
+ children: ReactNode;
25
+ objectRef?: (object: Group | null) => void;
26
+ onChange?: (next: Transform3DSettings) => void;
27
+ value: Transform3DSettings;
28
+ };
29
+ export declare const DEFAULT_TRANSFORM_3D: Transform3DSettings;
30
+ export declare const Transform3D: ({ children, objectRef, onChange, value }: Transform3DProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,25 +1,25 @@
1
1
  import { RefObject } from 'react';
2
2
  import { XRLayerConfig, XRMediaLayout, XRMediaSourceKind } from '../../types/compositor';
3
3
  export declare const XRMediaSurface: ({ canvasRef, imageRef, layer, layout, mirrored, sourceKind, videoRef, }: {
4
- canvasRef: RefObject<HTMLCanvasElement>;
5
- imageRef: RefObject<HTMLImageElement>;
4
+ canvasRef: RefObject<HTMLCanvasElement | null>;
5
+ imageRef: RefObject<HTMLImageElement | null>;
6
6
  layer: XRLayerConfig;
7
7
  layout: XRMediaLayout | null;
8
8
  mirrored: boolean;
9
9
  sourceKind: XRMediaSourceKind;
10
- videoRef: RefObject<HTMLVideoElement>;
10
+ videoRef: RefObject<HTMLVideoElement | null>;
11
11
  }) => import("react/jsx-runtime").JSX.Element;
12
12
  export declare const XRTrackingOverlay: ({ canvasRef, controlInsetTop, debugVisible, fps, imageRef, layer, layout, mirrored, sourceKind, videoRef, viewportSize, }: {
13
- canvasRef: RefObject<HTMLCanvasElement>;
13
+ canvasRef: RefObject<HTMLCanvasElement | null>;
14
14
  controlInsetTop?: number;
15
15
  debugVisible: boolean;
16
16
  fps?: number;
17
- imageRef: RefObject<HTMLImageElement>;
17
+ imageRef: RefObject<HTMLImageElement | null>;
18
18
  layer: XRLayerConfig;
19
19
  layout: XRMediaLayout | null;
20
20
  mirrored: boolean;
21
21
  sourceKind: XRMediaSourceKind;
22
- videoRef: RefObject<HTMLVideoElement>;
22
+ videoRef: RefObject<HTMLVideoElement | null>;
23
23
  viewportSize: {
24
24
  width: number;
25
25
  height: number;
@@ -1,6 +1,16 @@
1
1
  import { CanvasProps } from '@react-three/fiber';
2
2
  import { default as React, PropsWithChildren } from 'react';
3
- type XRSceneProps = PropsWithChildren & {
3
+ import * as THREE from "three";
4
+ export type XRSceneRenderOutputRequest = {
5
+ sceneColor?: boolean;
6
+ sceneDepth?: boolean;
7
+ excludeScreenUI?: boolean;
8
+ };
9
+ export type XRSceneRenderOutputs = {
10
+ sceneColorTexture: THREE.Texture | null;
11
+ sceneDepthTexture: THREE.Texture | null;
12
+ };
13
+ export type XRSceneProps = PropsWithChildren & {
4
14
  style?: React.CSSProperties;
5
15
  canvasProps?: CanvasProps & React.RefAttributes<HTMLCanvasElement>;
6
16
  loadingComponent?: React.ReactNode;
@@ -10,6 +20,7 @@ type XRSceneProps = PropsWithChildren & {
10
20
  width: number;
11
21
  height: number;
12
22
  };
23
+ renderOutputs?: XRSceneRenderOutputRequest;
24
+ onRenderOutputs?: (outputs: XRSceneRenderOutputs) => void;
13
25
  };
14
- export declare const XRScene: ({ style, canvasProps, children, loadingComponent, loadingTransitionDuration, errorComponent, renderTargetSize, }: XRSceneProps) => import("react/jsx-runtime").JSX.Element;
15
- export {};
26
+ export declare const XRScene: ({ style, canvasProps, children, loadingComponent, loadingTransitionDuration, errorComponent, renderTargetSize, renderOutputs, onRenderOutputs, }: XRSceneProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { XRViewportComponent } from './types';
2
+ export { computeViewportLayout, resolveViewportFitMode, resolveViewportSourceSelection, } from './layout';
3
+ export { useXRViewportRenderOutputs, useXRViewportState } from './contexts';
4
+ export { resolveViewportExternalFaces } from './hooks/useViewportExternalFaces';
5
+ export { resolveViewportSlotContent, resolveViewportSlots } from './slots';
6
+ export { useViewportMediaSource } from './hooks/useViewportMediaSource';
7
+ export { useViewportMediaTexture } from './hooks/useViewportMediaTexture';
8
+ export { useViewportPipeline } from './hooks/useViewportPipeline';
9
+ export { useViewportRenderOutputs, useViewportRenderState } from './hooks/useViewportRenderState';
10
+ export type { XRViewportFitMode, XRViewportMediaAssetOption, XRViewportMediaStrategy, XRViewportMode, XRViewportPreviewMode, XRViewportRenderOutputRequest, XRViewportRenderOutputs, XRViewportRenderState, XRViewportSize, XRViewportSourceConfig, XRViewportSourceKind, } from './types';
11
+ export declare const XRViewport: XRViewportComponent;
@@ -0,0 +1,7 @@
1
+ import { RefObject } from 'react';
2
+ import { XRViewportSourceKind } from '../types';
3
+ export declare const HiddenMedia: ({ imageRef, selectedSource, videoRef, }: {
4
+ imageRef: RefObject<HTMLImageElement>;
5
+ selectedSource: XRViewportSourceKind;
6
+ videoRef: RefObject<HTMLVideoElement>;
7
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { XRViewportMediaAssetOption } from '../types';
2
+ export declare const MediaAssetPicker: ({ dock, label, onChange, options, value, }: {
3
+ dock: "top-left" | "bottom-left";
4
+ label: string;
5
+ onChange: (value: string) => void;
6
+ options: XRViewportMediaAssetOption[];
7
+ value: string;
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { XRViewportMediaAssetOption, XRViewportSourceKind } from '../types';
2
+ export declare const MediaControlStack: ({ dock, imageOptions, selectedImageId, selectedSource, selectedVideoId, setSelectedImageId, setSelectedSource, setSelectedVideoId, showMediaControls, videoOptions, }: {
3
+ dock: "top-left" | "bottom-left";
4
+ imageOptions: XRViewportMediaAssetOption[];
5
+ selectedImageId: string;
6
+ selectedSource: XRViewportSourceKind;
7
+ selectedVideoId: string;
8
+ setSelectedImageId: (value: string) => void;
9
+ setSelectedSource: (value: XRViewportSourceKind) => void;
10
+ setSelectedVideoId: (value: string) => void;
11
+ showMediaControls: boolean;
12
+ videoOptions: XRViewportMediaAssetOption[];
13
+ }) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,30 @@
1
+ import { CSSProperties, ReactNode, RefObject } from 'react';
2
+ import { XRSceneRenderOutputs } from '../../XRScene';
3
+ import { XRViewportMediaAssetOption, XRViewportMode, XRViewportRenderOutputRequest, XRViewportSize, XRViewportSourceKind } from '../types';
4
+ import { XRMediaLayout } from '../../../types/compositor';
5
+ export declare const XRViewportLayers: ({ containerRef, displayCanvasRef, imageOptions, imageRef, layout, managesOwnMedia, mediaDock, mode, overlayContent, renderOutputs, sceneContent, selectedImageId, selectedSource, selectedVideoId, setSceneRenderOutputs, setSelectedImageId, setSelectedSource, setSelectedVideoId, showMediaControls, style, videoOptions, videoRef, viewportSize, mirrored, }: {
6
+ containerRef: RefObject<HTMLDivElement>;
7
+ displayCanvasRef: RefObject<HTMLCanvasElement>;
8
+ imageOptions: XRViewportMediaAssetOption[];
9
+ imageRef: RefObject<HTMLImageElement>;
10
+ layout: XRMediaLayout | null;
11
+ managesOwnMedia: boolean;
12
+ mediaDock: "top-left" | "bottom-left";
13
+ mode: XRViewportMode;
14
+ mirrored: boolean;
15
+ overlayContent: ReactNode;
16
+ renderOutputs: XRViewportRenderOutputRequest;
17
+ sceneContent: ReactNode;
18
+ selectedImageId: string;
19
+ selectedSource: XRViewportSourceKind;
20
+ selectedVideoId: string;
21
+ setSceneRenderOutputs: (outputs: XRSceneRenderOutputs) => void;
22
+ setSelectedImageId: (value: string) => void;
23
+ setSelectedSource: (value: XRViewportSourceKind) => void;
24
+ setSelectedVideoId: (value: string) => void;
25
+ showMediaControls: boolean;
26
+ style?: CSSProperties;
27
+ videoOptions: XRViewportMediaAssetOption[];
28
+ videoRef: RefObject<HTMLVideoElement>;
29
+ viewportSize: XRViewportSize;
30
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { XRViewportSourceKind } from './types';
2
+ export declare const DEFAULT_VIDEO_CONSTRAINTS: MediaStreamConstraints;
3
+ export declare const liveLayer: {
4
+ name: string;
5
+ clearColor: string;
6
+ pointerEvents: "none";
7
+ zIndex: number;
8
+ };
9
+ export declare const uiLayer: {
10
+ name: string;
11
+ clearColor: string;
12
+ pointerEvents: "auto";
13
+ zIndex: number;
14
+ };
15
+ export declare const sceneLayer: {
16
+ name: string;
17
+ clearColor: string;
18
+ pointerEvents: "auto";
19
+ zIndex: number;
20
+ };
21
+ export declare const MEDIA_OPTION_META: Record<XRViewportSourceKind, {
22
+ icon: string;
23
+ label: string;
24
+ }>;
@@ -0,0 +1,6 @@
1
+ import { Context } from 'react';
2
+ import { XRViewportRenderOutputs, XRViewportRenderState } from './types';
3
+ export declare const XRViewportStateContext: Context<XRViewportRenderState | null>;
4
+ export declare const XRViewportRenderOutputsContext: Context<XRViewportRenderOutputs | null>;
5
+ export declare const useXRViewportState: () => XRViewportRenderState | null;
6
+ export declare const useXRViewportRenderOutputs: () => XRViewportRenderOutputs | null;
@@ -0,0 +1,13 @@
1
+ import { CalibrationMediaSourceKind } from '../../../hooks/useCalibrationFaceTracker';
2
+ import { XRModelNodeFaceTracking } from '../../../types/nodes';
3
+ export declare const resolveViewportExternalFaces: ({ detectionResults, selectedSource, }: {
4
+ detectionResults: ReturnType<XRModelNodeFaceTracking["getDetectionResults"]> | null | undefined;
5
+ selectedSource: CalibrationMediaSourceKind;
6
+ }) => import('../../../types').FaceTrackingResult[];
7
+ export declare const useViewportExternalFaces: ({ enabled, selectedSource, }: {
8
+ enabled: boolean;
9
+ selectedSource: CalibrationMediaSourceKind;
10
+ }) => {
11
+ faces: import('../../../types').FaceTrackingResult[];
12
+ trackerStatus: "idle" | "ready";
13
+ };
@@ -0,0 +1,16 @@
1
+ import { XRViewportMediaAssetOption, XRViewportSize, XRViewportSourceKind } from '../types';
2
+ export declare const clearVideoElement: (video: HTMLVideoElement | null) => void;
3
+ export declare const clearImageElement: (image: HTMLImageElement | null) => void;
4
+ export declare const useViewportMediaSource: ({ enabled, imageAsset, selectedSource, videoAsset, }: {
5
+ enabled: boolean;
6
+ imageAsset?: XRViewportMediaAssetOption;
7
+ selectedSource: XRViewportSourceKind;
8
+ videoAsset?: XRViewportMediaAssetOption;
9
+ }) => {
10
+ videoRef: import('react').RefObject<HTMLVideoElement>;
11
+ imageRef: import('react').RefObject<HTMLImageElement>;
12
+ stream: MediaStream | null;
13
+ mediaSize: XRViewportSize;
14
+ status: "idle" | "ready" | "error" | "requesting";
15
+ error: string | null;
16
+ };
@@ -0,0 +1,10 @@
1
+ import { RefObject } from 'react';
2
+ import { XRViewportSourceKind } from '../types';
3
+ import * as THREE from "three";
4
+ export declare const useViewportMediaTexture: ({ enabled, imageRef, selectedSource, status, videoRef, }: {
5
+ enabled: boolean;
6
+ imageRef: RefObject<HTMLImageElement>;
7
+ selectedSource: XRViewportSourceKind;
8
+ status: "idle" | "requesting" | "ready" | "error";
9
+ videoRef: RefObject<HTMLVideoElement>;
10
+ }) => THREE.Texture | null;
@@ -0,0 +1,41 @@
1
+ import { XRSceneRenderOutputs } from '../../XRScene';
2
+ import { XRViewportFitMode, XRViewportMediaAssetOption, XRViewportMediaStrategy, XRViewportPreviewMode, XRViewportRenderOutputRequest, XRViewportSourceConfig, XRViewportSourceKind } from '../types';
3
+ export declare const useViewportPipeline: ({ fitMode, imageOptions, initialImageId, initialMirrored, initialSource, initialVideoId, mediaStrategy, previewMode, renderOutputs, showMediaControlsByDefault, source, videoOptions, }: {
4
+ fitMode: XRViewportFitMode;
5
+ imageOptions: XRViewportMediaAssetOption[];
6
+ initialImageId?: string;
7
+ initialMirrored: boolean;
8
+ initialSource: XRViewportSourceKind;
9
+ initialVideoId?: string;
10
+ mediaStrategy: XRViewportMediaStrategy;
11
+ previewMode: XRViewportPreviewMode;
12
+ renderOutputs: XRViewportRenderOutputRequest;
13
+ showMediaControlsByDefault: boolean;
14
+ source?: XRViewportSourceConfig;
15
+ videoOptions: XRViewportMediaAssetOption[];
16
+ }) => {
17
+ containerRef: import('react').RefObject<HTMLDivElement>;
18
+ displayCanvasRef: import('react').RefObject<HTMLCanvasElement>;
19
+ displayMirrored: boolean;
20
+ layout: import('../../../types').XRMediaLayout | null;
21
+ managesOwnMedia: boolean;
22
+ media: {
23
+ videoRef: import('react').RefObject<HTMLVideoElement>;
24
+ imageRef: import('react').RefObject<HTMLImageElement>;
25
+ stream: MediaStream | null;
26
+ mediaSize: import('..').XRViewportSize;
27
+ status: "idle" | "ready" | "error" | "requesting";
28
+ error: string | null;
29
+ };
30
+ renderOutputState: import('..').XRViewportRenderOutputs;
31
+ renderState: import('..').XRViewportRenderState;
32
+ selectedImageId: string;
33
+ selectedSource: XRViewportSourceKind;
34
+ selectedVideoId: string;
35
+ setSceneRenderOutputs: import('react').Dispatch<import('react').SetStateAction<XRSceneRenderOutputs>>;
36
+ setSelectedImageId: import('react').Dispatch<import('react').SetStateAction<string>>;
37
+ setSelectedSource: import('react').Dispatch<import('react').SetStateAction<XRViewportSourceKind>>;
38
+ setSelectedVideoId: import('react').Dispatch<import('react').SetStateAction<string>>;
39
+ showMediaControls: boolean;
40
+ viewportSize: import('..').XRViewportSize;
41
+ };
@@ -0,0 +1,47 @@
1
+ import { XRViewportMediaAssetOption, XRViewportPreviewMode, XRViewportRenderOutputRequest, XRViewportRenderOutputs, XRViewportRenderState, XRViewportSize, XRViewportSourceKind } from '../types';
2
+ import { XRMediaLayout } from '../../../types/compositor';
3
+ import { FaceTrackingResult } from '../../../types/face';
4
+ import { XRSceneRenderOutputs } from '../../XRScene';
5
+ import type * as THREE from "three";
6
+ type InternalTrackerState = {
7
+ activeDelegate: "GPU" | "CPU" | null;
8
+ error: string | null;
9
+ faces: FaceTrackingResult[];
10
+ status: "idle" | "initializing" | "ready" | "error";
11
+ };
12
+ type ExternalTrackerState = {
13
+ faces: FaceTrackingResult[];
14
+ trackerStatus: "idle" | "ready";
15
+ };
16
+ export declare const useViewportRenderState: ({ externalTracker, imageOptions, layout, managesOwnMedia, mediaError, mediaFitMode, mediaSize, mediaStatus, mirrored, selectedImage, selectedImageId, selectedSource, selectedVideo, selectedVideoId, setMirrored, setSelectedImageId, setSelectedSource, setSelectedVideoId, setShowMediaControls, showMediaControls, tracker, videoOptions, viewportSize, }: {
17
+ externalTracker: ExternalTrackerState;
18
+ imageOptions: XRViewportMediaAssetOption[];
19
+ layout: XRMediaLayout | null;
20
+ managesOwnMedia: boolean;
21
+ mediaError: string | null;
22
+ mediaFitMode: Exclude<XRViewportRenderState["mediaFitMode"], "auto">;
23
+ mediaSize: XRViewportSize;
24
+ mediaStatus: XRViewportRenderState["mediaStatus"];
25
+ mirrored: boolean;
26
+ selectedImage?: XRViewportMediaAssetOption;
27
+ selectedImageId: string;
28
+ selectedSource: XRViewportSourceKind;
29
+ selectedVideo?: XRViewportMediaAssetOption;
30
+ selectedVideoId: string;
31
+ setMirrored: (value: boolean) => void;
32
+ setSelectedImageId: (value: string) => void;
33
+ setSelectedSource: (value: XRViewportSourceKind) => void;
34
+ setSelectedVideoId: (value: string) => void;
35
+ setShowMediaControls: (value: boolean) => void;
36
+ showMediaControls: boolean;
37
+ tracker: InternalTrackerState;
38
+ videoOptions: XRViewportMediaAssetOption[];
39
+ viewportSize: XRViewportSize;
40
+ }) => XRViewportRenderState;
41
+ export declare const useViewportRenderOutputs: ({ mediaTexture, previewMode, renderOutputs, sceneRenderOutputs, }: {
42
+ mediaTexture: THREE.Texture | null;
43
+ previewMode: XRViewportPreviewMode;
44
+ renderOutputs: XRViewportRenderOutputRequest;
45
+ sceneRenderOutputs: XRSceneRenderOutputs;
46
+ }) => XRViewportRenderOutputs;
47
+ export {};
@@ -1,101 +1,3 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- import { CalibrationMediaSourceKind } from '../../hooks/useCalibrationFaceTracker';
3
- import { XRMediaLayout } from '../../types/compositor';
4
- import { FaceTrackingResult } from '../../types/face';
5
- import { XRModelNodeFaceTracking } from '../../types/nodes';
6
- export type XRViewportMode = "dom" | "r3f" | "hybrid";
7
- export type XRViewportSourceKind = "webcam" | "image" | "video";
8
- export type XRViewportFitMode = "auto" | "cover" | "contain";
9
- export type XRViewportMediaStrategy = "internal" | "external";
10
- export type XRViewportMediaAssetOption = {
11
- id: string;
12
- label: string;
13
- src: string;
14
- };
15
- export type XRViewportSourceConfig = {
16
- kind: "webcam";
17
- } | {
18
- kind: "image";
19
- assetId?: string;
20
- } | {
21
- kind: "video";
22
- assetId?: string;
23
- };
24
- export type XRViewportSize = {
25
- width: number;
26
- height: number;
27
- };
28
- export type XRViewportRenderState = {
29
- activeDelegate: "GPU" | "CPU" | null;
30
- faces: FaceTrackingResult[];
31
- imageOptions: XRViewportMediaAssetOption[];
32
- layout: XRMediaLayout | null;
33
- mediaError: string | null;
34
- mediaFitMode: Exclude<XRViewportFitMode, "auto">;
35
- mediaLabel: string;
36
- mediaStatus: "idle" | "requesting" | "ready" | "error";
37
- mirrored: boolean;
38
- selectedImageId: string;
39
- selectedSource: XRViewportSourceKind;
40
- selectedVideoId: string;
41
- setMirrored: (value: boolean) => void;
42
- setSelectedImageId: (value: string) => void;
43
- setSelectedSource: (value: XRViewportSourceKind) => void;
44
- setSelectedVideoId: (value: string) => void;
45
- setShowMediaControls: (value: boolean) => void;
46
- showMediaControls: boolean;
47
- trackerError: string | null;
48
- trackerStatus: "idle" | "initializing" | "ready" | "error";
49
- videoOptions: XRViewportMediaAssetOption[];
50
- viewportSize: XRViewportSize;
51
- mediaSize: XRViewportSize;
52
- };
53
- type XRViewportProps = {
54
- children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
55
- fitMode?: XRViewportFitMode;
56
- imageOptions?: XRViewportMediaAssetOption[];
57
- initialImageId?: string;
58
- initialMirrored?: boolean;
59
- initialSource?: XRViewportSourceKind;
60
- initialVideoId?: string;
61
- mediaStrategy?: XRViewportMediaStrategy;
62
- mediaDock?: "top-left" | "bottom-left";
63
- mode?: XRViewportMode;
64
- showMediaControlsByDefault?: boolean;
65
- source?: XRViewportSourceConfig;
66
- style?: CSSProperties;
67
- videoOptions?: XRViewportMediaAssetOption[];
68
- };
69
- type XRViewportSlotProps = {
70
- children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
71
- };
72
- type XRViewportComponent = ((props: XRViewportProps) => JSX.Element) & {
73
- Scene: (props: XRViewportSlotProps) => JSX.Element;
74
- Overlay: (props: XRViewportSlotProps) => JSX.Element;
75
- };
76
- export declare const resolveViewportFitMode: (fitMode: XRViewportFitMode, selectedSource: XRViewportSourceKind) => Exclude<XRViewportFitMode, "auto">;
77
- export declare const resolveViewportSourceSelection: ({ imageOptions, initialImageId, initialSource, initialVideoId, source, videoOptions, }: {
78
- imageOptions: XRViewportMediaAssetOption[];
79
- initialImageId?: string;
80
- initialSource?: XRViewportSourceKind;
81
- initialVideoId?: string;
82
- source?: XRViewportSourceConfig;
83
- videoOptions: XRViewportMediaAssetOption[];
84
- }) => {
85
- selectedSource: XRViewportSourceKind;
86
- selectedImageId: string;
87
- selectedVideoId: string;
88
- };
89
- export declare const computeViewportLayout: (source: XRViewportSize, destination: XRViewportSize, fitMode: Exclude<XRViewportFitMode, "auto">) => XRMediaLayout | null;
90
- export declare const resolveViewportSlots: (mode: XRViewportMode, children: ReactNode) => {
91
- sceneContent: ReactNode;
92
- overlayContent: ReactNode;
93
- };
94
- export declare const resolveViewportSlotContent: (content: ReactNode | ((state: XRViewportRenderState) => ReactNode), state: XRViewportRenderState) => ReactNode;
95
- export declare const resolveViewportExternalFaces: ({ detectionResults, selectedSource, }: {
96
- detectionResults: ReturnType<XRModelNodeFaceTracking["getDetectionResults"]> | null | undefined;
97
- selectedSource: CalibrationMediaSourceKind;
98
- }) => FaceTrackingResult[];
99
- export declare const useXRViewportState: () => XRViewportRenderState | null;
100
- export declare const XRViewport: XRViewportComponent;
101
- export {};
1
+ export { XRViewport, resolveViewportExternalFaces, resolveViewportSlotContent, resolveViewportSlots, useXRViewportRenderOutputs, useXRViewportState, useViewportMediaSource, } from './XRViewport';
2
+ export { computeViewportLayout, resolveViewportFitMode, resolveViewportSourceSelection, } from './layout';
3
+ export type * from './types';
@@ -0,0 +1,16 @@
1
+ import { XRMediaLayout } from '../../types/compositor';
2
+ import { XRViewportFitMode, XRViewportMediaAssetOption, XRViewportSize, XRViewportSourceConfig, XRViewportSourceKind } from './types';
3
+ export declare const resolveViewportFitMode: (fitMode: XRViewportFitMode, selectedSource: XRViewportSourceKind) => Exclude<XRViewportFitMode, "auto">;
4
+ export declare const resolveViewportSourceSelection: ({ imageOptions, initialImageId, initialSource, initialVideoId, source, videoOptions, }: {
5
+ imageOptions: XRViewportMediaAssetOption[];
6
+ initialImageId?: string;
7
+ initialSource?: XRViewportSourceKind;
8
+ initialVideoId?: string;
9
+ source?: XRViewportSourceConfig;
10
+ videoOptions: XRViewportMediaAssetOption[];
11
+ }) => {
12
+ selectedSource: XRViewportSourceKind;
13
+ selectedImageId: string;
14
+ selectedVideoId: string;
15
+ };
16
+ export declare const computeViewportLayout: (source: XRViewportSize, destination: XRViewportSize, fitMode: Exclude<XRViewportFitMode, "auto">) => XRMediaLayout | null;
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+ import { XRViewportComponent, XRViewportMode, XRViewportRenderState, XRViewportSlotProps } from './types';
3
+ export declare const XRViewportSceneSlot: {
4
+ ({ children }: XRViewportSlotProps): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
7
+ export declare const XRViewportOverlaySlot: {
8
+ ({ children }: XRViewportSlotProps): import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ };
11
+ export declare const resolveViewportSlots: (mode: XRViewportMode, children: ReactNode) => {
12
+ sceneContent: ReactNode;
13
+ overlayContent: ReactNode;
14
+ };
15
+ export declare const resolveViewportSlotContent: (content: ReactNode | ((state: XRViewportRenderState) => ReactNode), state: XRViewportRenderState) => ReactNode;
16
+ export declare function attachXRViewportSlots(component: XRViewportComponent): XRViewportComponent;
@@ -0,0 +1,89 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { XRMediaLayout } from '../../types/compositor';
3
+ import { FaceTrackingResult } from '../../types/face';
4
+ import { RenderOutputKind } from '../../screen2d';
5
+ import type * as THREE from "three";
6
+ export type XRViewportMode = "dom" | "r3f" | "hybrid";
7
+ export type XRViewportSourceKind = "webcam" | "image" | "video";
8
+ export type XRViewportFitMode = "auto" | "cover" | "contain";
9
+ export type XRViewportMediaStrategy = "internal" | "external";
10
+ export type XRViewportMediaAssetOption = {
11
+ id: string;
12
+ label: string;
13
+ src: string;
14
+ };
15
+ export type XRViewportSourceConfig = {
16
+ kind: "webcam";
17
+ } | {
18
+ kind: "image";
19
+ assetId?: string;
20
+ } | {
21
+ kind: "video";
22
+ assetId?: string;
23
+ };
24
+ export type XRViewportSize = {
25
+ width: number;
26
+ height: number;
27
+ };
28
+ export type XRViewportPreviewMode = "media" | "scene" | "finalColor" | "sceneDepth";
29
+ export type XRViewportRenderOutputRequest = Partial<Record<RenderOutputKind, boolean>>;
30
+ export type XRViewportRenderOutputs = {
31
+ requested: XRViewportRenderOutputRequest;
32
+ previewMode: XRViewportPreviewMode;
33
+ mediaColorTexture: THREE.Texture | null;
34
+ sceneColorTexture: THREE.Texture | null;
35
+ finalColorTexture: THREE.Texture | null;
36
+ sceneDepthTexture: THREE.Texture | null;
37
+ estimatedDepthTexture: THREE.Texture | null;
38
+ available: Record<RenderOutputKind, boolean>;
39
+ };
40
+ export type XRViewportRenderState = {
41
+ activeDelegate: "GPU" | "CPU" | null;
42
+ faces: FaceTrackingResult[];
43
+ imageOptions: XRViewportMediaAssetOption[];
44
+ layout: XRMediaLayout | null;
45
+ mediaError: string | null;
46
+ mediaFitMode: Exclude<XRViewportFitMode, "auto">;
47
+ mediaLabel: string;
48
+ mediaStatus: "idle" | "requesting" | "ready" | "error";
49
+ mirrored: boolean;
50
+ selectedImageId: string;
51
+ selectedSource: XRViewportSourceKind;
52
+ selectedVideoId: string;
53
+ setMirrored: (value: boolean) => void;
54
+ setSelectedImageId: (value: string) => void;
55
+ setSelectedSource: (value: XRViewportSourceKind) => void;
56
+ setSelectedVideoId: (value: string) => void;
57
+ setShowMediaControls: (value: boolean) => void;
58
+ showMediaControls: boolean;
59
+ trackerError: string | null;
60
+ trackerStatus: "idle" | "initializing" | "ready" | "error";
61
+ videoOptions: XRViewportMediaAssetOption[];
62
+ viewportSize: XRViewportSize;
63
+ mediaSize: XRViewportSize;
64
+ };
65
+ export type XRViewportProps = {
66
+ children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
67
+ fitMode?: XRViewportFitMode;
68
+ imageOptions?: XRViewportMediaAssetOption[];
69
+ initialImageId?: string;
70
+ initialMirrored?: boolean;
71
+ initialSource?: XRViewportSourceKind;
72
+ initialVideoId?: string;
73
+ mediaStrategy?: XRViewportMediaStrategy;
74
+ mediaDock?: "top-left" | "bottom-left";
75
+ mode?: XRViewportMode;
76
+ previewMode?: XRViewportPreviewMode;
77
+ renderOutputs?: XRViewportRenderOutputRequest;
78
+ showMediaControlsByDefault?: boolean;
79
+ source?: XRViewportSourceConfig;
80
+ style?: CSSProperties;
81
+ videoOptions?: XRViewportMediaAssetOption[];
82
+ };
83
+ export type XRViewportSlotProps = {
84
+ children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
85
+ };
86
+ export type XRViewportComponent = ((props: XRViewportProps) => JSX.Element) & {
87
+ Scene: (props: XRViewportSlotProps) => JSX.Element;
88
+ Overlay: (props: XRViewportSlotProps) => JSX.Element;
89
+ };
@@ -0,0 +1,3 @@
1
+ import { RefObject } from 'react';
2
+ import { XRViewportSize } from './types';
3
+ export declare const useViewportSize: <T extends HTMLElement>(ref: RefObject<T>) => XRViewportSize;