@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
@@ -0,0 +1,227 @@
1
+ export type TextAlign = "left" | "center" | "right";
2
+ export type TextVerticalAlign = "top" | "center" | "bottom";
3
+ export type TextBendPreset = "arc" | "arc-lower" | "arc-upper" | "arch" | "bulge" | "shell-lower" | "shell-upper" | "flag" | "wave" | "fish" | "rise" | "fisheye" | "inflate" | "squeeze" | "twist";
4
+ export type TextStrokeLayer = {
5
+ color: string;
6
+ width: number;
7
+ opacity?: number;
8
+ };
9
+ export type TextShadowLayer = {
10
+ color: string;
11
+ blur: number;
12
+ offsetX?: number;
13
+ offsetY?: number;
14
+ opacity?: number;
15
+ };
16
+ export type TextInnerShadow = {
17
+ color: string;
18
+ blur: number;
19
+ offsetX?: number;
20
+ offsetY?: number;
21
+ opacity?: number;
22
+ };
23
+ export type TextGlow = {
24
+ color: string;
25
+ style: "outward" | "contoured";
26
+ intensity?: number;
27
+ range?: number;
28
+ horizontalAngle?: number;
29
+ verticalAngle?: number;
30
+ };
31
+ export type TextOverflowMode = "clip" | "clamp" | "ellipsis" | "shrink";
32
+ export type TextBackgroundFillMode = "solid" | "gradient";
33
+ export type TextBackgroundFit = "full" | "text";
34
+ export type TextBackgroundTextureFit = "cover" | "contain" | "stretch";
35
+ export type TextGradientStop = {
36
+ color: string;
37
+ position: number;
38
+ };
39
+ /**
40
+ * `<TextLabel>` — a text label drawn into a CanvasTexture and rendered as
41
+ * a single mesh. First-class scene-tree primitive so lifecycle scripts
42
+ * don't have to hand-paint canvas textures for every quiz question,
43
+ * progress indicator, or floating answer.
44
+ *
45
+ * Sizes itself 1x1 in world units; use `scale` on the JSX node or a
46
+ * parent `<ScreenTransform>` / `<TrackingAnchor>` to place it.
47
+ *
48
+ * Word-wraps automatically inside the panel's width; when there are too
49
+ * many lines for the chosen font size, the font shrinks one step before
50
+ * the text is allowed to clip.
51
+ */
52
+ export type TextLabelProps = {
53
+ /** The text to render. Required. */
54
+ text: string;
55
+ /** Optional precomputed lines. When provided, these are rendered directly without word wrapping. */
56
+ lines?: string[];
57
+ /** Text color. Default `#ffffff`. */
58
+ color?: string;
59
+ /** Multiple stroke layers, drawn outer-to-inner. */
60
+ strokeLayers?: TextStrokeLayer[];
61
+ /** Master visibility gate for all stroke/outline rendering. Default true. */
62
+ outlineEnabled?: boolean;
63
+ /** Optional text stroke color. Omit or pair with `strokeWidth={0}` for no stroke. */
64
+ strokeColor?: string;
65
+ /** Text stroke thickness in canvas px. Default 0. */
66
+ strokeWidth?: number;
67
+ /** Stroke opacity multiplier. Default 1. */
68
+ strokeOpacity?: number;
69
+ /** Multiple shadow / glow layers, drawn back-to-front. */
70
+ shadowLayers?: TextShadowLayer[];
71
+ /** Master visibility gate for all outer shadow rendering. Default true. */
72
+ shadowEnabled?: boolean;
73
+ /** Optional inner shadow rendered inside the glyphs. */
74
+ innerShadow?: TextInnerShadow;
75
+ /** Optional glow rendered behind the glyphs. */
76
+ glow?: TextGlow;
77
+ /** Optional text shadow/glow color. Omit for none. */
78
+ shadowColor?: string;
79
+ /** Shadow blur radius in canvas px. Default 0. */
80
+ shadowBlur?: number;
81
+ /** Shadow X offset in canvas px. Default 0. */
82
+ shadowOffsetX?: number;
83
+ /** Shadow Y offset in canvas px. Default 0. */
84
+ shadowOffsetY?: number;
85
+ /** Shadow opacity multiplier. Default 1. */
86
+ shadowOpacity?: number;
87
+ /** Font weight. Default `bold`. */
88
+ fontWeight?: "normal" | "bold" | number;
89
+ /** Font style. Default `normal`. */
90
+ fontStyle?: "normal" | "italic";
91
+ /** Font family. Default `Arial, sans-serif`. */
92
+ fontFamily?: string;
93
+ /**
94
+ * Font size in canvas px at the default 512px resolution. Roughly maps
95
+ * to "10pt" -> 28, "12pt" -> 36, "16pt" -> 48, etc. Default 48.
96
+ */
97
+ fontSize?: number;
98
+ /** Horizontal text alignment inside the available lane. Default `center`. */
99
+ textAlign?: TextAlign;
100
+ /** Vertical text alignment inside the available lane. Default `center`. */
101
+ verticalAlign?: TextVerticalAlign;
102
+ /** Overflow behavior. `clamp` keeps only full visible lines, `clip` allows canvas-edge clipping. */
103
+ overflow?: TextOverflowMode;
104
+ /** When true, keep shrinking until the text fits or `minFontSize` is hit. */
105
+ resizeToFit?: boolean;
106
+ /** Minimum shrink target in canvas px. Default 12. */
107
+ minFontSize?: number;
108
+ /** Character spacing as a normalized ratio from 0 to 1. Default 0. */
109
+ letterSpacing?: number;
110
+ /** Line spacing as a normalized ratio from 0 to 1. Default 0.3. */
111
+ lineSpacing?: number;
112
+ /** Panel background color. Use `'transparent'` for text-only. Default `rgba(20,40,110,0.88)`. */
113
+ bgColor?: string;
114
+ /** Background fill mode. Default `solid`. */
115
+ bgFillMode?: TextBackgroundFillMode;
116
+ /** Background opacity multiplier. Default 1. */
117
+ bgOpacity?: number;
118
+ /** Background fit mode. `full` fills the label rect, `text` hugs the measured text block. */
119
+ bgFit?: TextBackgroundFit;
120
+ /** When true, ignore explicit background width/height and size from the text block. */
121
+ bgAutoSize?: boolean;
122
+ /** Optional explicit background width in canvas px. */
123
+ bgWidth?: number;
124
+ /** Optional explicit background height in canvas px. */
125
+ bgHeight?: number;
126
+ /** Optional gradient stops when `bgFillMode` is `gradient`. */
127
+ bgGradientStops?: TextGradientStop[];
128
+ /** Optional static texture URL when `bgFillMode` is `texture`. */
129
+ bgTextureUrl?: string;
130
+ /** Texture fit behavior. Default `cover`. */
131
+ bgTextureFit?: TextBackgroundTextureFit;
132
+ /** Mirror the background texture horizontally. Default false. */
133
+ bgTextureFlipX?: boolean;
134
+ /** Mirror the background texture vertically. Default false. */
135
+ bgTextureFlipY?: boolean;
136
+ /** Optional border color. Omit for no border. */
137
+ borderColor?: string;
138
+ /** Border thickness. Default 0. */
139
+ borderWidth?: number;
140
+ /** Corner radius. Use 0 for square. Default 24. */
141
+ borderRadius?: number;
142
+ /** Inner padding in canvas px. Default 32. */
143
+ padding?: number;
144
+ /**
145
+ * Aspect ratio (width / height). The mesh itself is always 1x1; this
146
+ * controls how the texture canvas is shaped so wrapping and corner
147
+ * radius read correctly when the label isn't square. Default 2.5
148
+ * (roughly banner-shaped).
149
+ */
150
+ aspect?: number;
151
+ /** Canvas resolution (height in px). Default 512. */
152
+ resolution?: number;
153
+ /** Material opacity multiplier. Default 1. */
154
+ opacity?: number;
155
+ /** Draw an underline beneath each rendered line. Default false. */
156
+ underline?: boolean;
157
+ /** Draw a strikethrough across each rendered line. Default false. */
158
+ strikethrough?: boolean;
159
+ /** Bend text along a shallow vertical curve. Range -100..100. Default 0. */
160
+ bendPreset?: TextBendPreset;
161
+ bendStrength?: number;
162
+ /** Optional `name` for runtime `getObjectByName` lookups. */
163
+ name?: string;
164
+ /** Ignore depth - appropriate for overlay UI. Default true. */
165
+ overlay?: boolean;
166
+ /** Local position offset, forwarded to the underlying mesh. */
167
+ position?: [number, number, number];
168
+ /** Local rotation (Euler radians), forwarded to the underlying mesh. */
169
+ rotation?: [number, number, number];
170
+ /** Local scale, forwarded to the underlying mesh. */
171
+ scale?: [number, number, number] | number;
172
+ /** Mesh visibility, forwarded so descendants inherit correctly. */
173
+ visible?: boolean;
174
+ /** Render ordering for overlay composition. */
175
+ renderOrder?: number;
176
+ };
177
+ export type TextLabelDefaults = Required<Pick<TextLabelProps, "color" | "strokeWidth" | "strokeOpacity" | "shadowBlur" | "shadowOffsetX" | "shadowOffsetY" | "shadowOpacity" | "fontWeight" | "fontStyle" | "fontFamily" | "fontSize" | "textAlign" | "verticalAlign" | "minFontSize" | "letterSpacing" | "lineSpacing" | "bgColor" | "bgFillMode" | "bgOpacity" | "bgFit" | "bgTextureFit" | "bgTextureFlipX" | "bgTextureFlipY" | "borderWidth" | "borderRadius" | "padding" | "aspect" | "resolution" | "opacity" | "underline" | "strikethrough" | "bendPreset" | "bendStrength">>;
178
+ export type BuildTextLabelTextureOptions = {
179
+ text: string;
180
+ lines?: string[];
181
+ color: string;
182
+ strokeLayers?: TextStrokeLayer[];
183
+ strokeColor?: string;
184
+ strokeWidth: number;
185
+ strokeOpacity: number;
186
+ shadowLayers?: TextShadowLayer[];
187
+ innerShadow?: TextInnerShadow;
188
+ glow?: TextGlow;
189
+ shadowColor?: string;
190
+ shadowBlur: number;
191
+ shadowOffsetX: number;
192
+ shadowOffsetY: number;
193
+ shadowOpacity: number;
194
+ fontWeight: "normal" | "bold" | number;
195
+ fontStyle: "normal" | "italic";
196
+ fontFamily: string;
197
+ fontSize: number;
198
+ textAlign: TextAlign;
199
+ verticalAlign: TextVerticalAlign;
200
+ overflow?: TextOverflowMode;
201
+ resizeToFit?: boolean;
202
+ minFontSize: number;
203
+ letterSpacing: number;
204
+ lineSpacing: number;
205
+ bgColor: string;
206
+ bgFillMode: TextBackgroundFillMode;
207
+ bgOpacity: number;
208
+ bgFit: TextBackgroundFit;
209
+ bgAutoSize?: boolean;
210
+ bgWidth?: number;
211
+ bgHeight?: number;
212
+ bgGradientStops?: TextGradientStop[];
213
+ bgTextureImage?: CanvasImageSource;
214
+ bgTextureFit: TextBackgroundTextureFit;
215
+ bgTextureFlipX: boolean;
216
+ bgTextureFlipY: boolean;
217
+ borderColor?: string;
218
+ borderWidth: number;
219
+ borderRadius: number;
220
+ padding: number;
221
+ width: number;
222
+ height: number;
223
+ underline: boolean;
224
+ strikethrough: boolean;
225
+ bendPreset: TextBendPreset;
226
+ bendStrength: number;
227
+ };
@@ -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;
@@ -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 {};