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

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 (355) hide show
  1. package/GROUNDING.md +1614 -21
  2. package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-gLMKiVwJ.js → DebuggerUI-xp4bg3gH.js} +1 -1
  4. package/dist/FaceMeshRenderer-CALA4k49.js +1195 -0
  5. package/dist/FaceMeshRenderer-D4PFqsb3.cjs +155 -0
  6. package/dist/FaceRetouch-Bq2rtPlV.cjs +134 -0
  7. package/dist/FaceRetouch-DF5UsOsZ.js +551 -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 +59 -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 +19 -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-D5TQcwmv.js +660 -0
  124. package/dist/contexts-Dv1SA0bS.cjs +1 -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 +7735 -4896
  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 +21 -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-Cjcgcc4w.js +118 -0
  206. package/dist/getFaceInfo-oQcP40Ha.cjs +1 -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/useXRModel.d.ts +5 -0
  224. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  225. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  226. package/dist/index-Be-S7uSm.cjs +1 -0
  227. package/dist/index-D4bLzBr6.cjs +1 -0
  228. package/dist/index-DdWBnI7A.cjs +17 -0
  229. package/dist/index-DpVIEBHw.js +2068 -0
  230. package/dist/index-DqhqBi7O.cjs +1 -0
  231. package/dist/index-HxT9XEuh.js +111 -0
  232. package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
  233. package/dist/index-N7C6fNah.js +214 -0
  234. package/dist/index-UU5ODHGU.cjs +1 -0
  235. package/dist/{index-BGNbrc4C.js → index-YMUaJU7U.js} +217 -126
  236. package/dist/{internal-Cae1ps15.js → internal-D7NxAsc6.js} +86 -80
  237. package/dist/internal-i2JkM85N.cjs +1 -0
  238. package/dist/internal.cjs +1 -1
  239. package/dist/internal.js +2 -2
  240. package/dist/low-level.cjs +1 -1
  241. package/dist/low-level.js +1138 -86
  242. package/dist/main.cjs +1 -73
  243. package/dist/main.js +545 -1693
  244. package/dist/material/MaterialFill.d.ts +20 -0
  245. package/dist/material/MeshMaterial.d.ts +14 -0
  246. package/dist/material/index.d.ts +2 -0
  247. package/dist/models/Body/index.d.ts +1 -1
  248. package/dist/models/Face/index.d.ts +1 -0
  249. package/dist/models/Face/rotation.d.ts +3 -0
  250. package/dist/render/renderGroups.d.ts +47 -0
  251. package/dist/render/renderPasses.d.ts +18 -0
  252. package/dist/renderGroups-JEXqSACh.js +152 -0
  253. package/dist/renderGroups-uXXsFpvw.cjs +1 -0
  254. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  255. package/dist/renderLayers-zrK2pv5O.js +13 -0
  256. package/dist/renderPasses-CVWt0t8m.cjs +21 -0
  257. package/dist/renderPasses-CdGZeHHL.js +1500 -0
  258. package/dist/scene-object/index.d.ts +146 -0
  259. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  260. package/dist/scene-object.cjs +1 -0
  261. package/dist/scene-object.js +40 -0
  262. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  263. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  264. package/dist/screen2d/coordinates.d.ts +87 -0
  265. package/dist/screen2d/index.d.ts +3 -0
  266. package/dist/screen2d/screenTransform.d.ts +47 -0
  267. package/dist/screen2d/smoothing.d.ts +5 -0
  268. package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
  269. package/dist/{selectors-CXd_x-6t.js → selectors-twqYByYZ.js} +6 -6
  270. package/dist/services/MetricsCollector/index.d.ts +7 -1
  271. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  272. package/dist/session-BChR4TgK.cjs +31 -0
  273. package/dist/session-C1StwN0f.js +363 -0
  274. package/dist/texture/animatedTexture.d.ts +63 -0
  275. package/dist/texture/animationMath.d.ts +8 -0
  276. package/dist/texture/gifReader.d.ts +17 -0
  277. package/dist/texture/gifTextureSource.d.ts +16 -0
  278. package/dist/texture/sourceResolver.d.ts +30 -0
  279. package/dist/tracking.cjs +1 -1
  280. package/dist/tracking.js +580 -321
  281. package/dist/types/face.d.ts +1 -13
  282. package/dist/types/index.d.ts +0 -1
  283. package/dist/types/nodes.d.ts +2 -1
  284. package/dist/types/session.d.ts +2 -0
  285. package/dist/types/tracking.d.ts +8 -2
  286. package/dist/types/util-types.d.ts +1 -1
  287. package/dist/useFaceInfo-DOJCGlDG.js +62 -0
  288. package/dist/useFaceInfo-DSUmuzzO.cjs +1 -0
  289. package/dist/useFaceResults-B1BSGUAW.cjs +1 -0
  290. package/dist/useFaceResults-CBmhT5E8.js +19 -0
  291. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  292. package/dist/utils/integrity.d.ts +4 -25
  293. package/dist/utils/landmarkBounds.d.ts +1 -1
  294. package/dist/utils/logger.d.ts +2 -2
  295. package/docs/MIGRATION_GUIDE.md +589 -0
  296. package/docs/SDK_DOCUMENTATION.md +1155 -0
  297. package/docs/api/audio.mdx +36 -0
  298. package/docs/api/behavior-components.mdx +164 -0
  299. package/docs/api/capture-recording.mdx +103 -0
  300. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  301. package/docs/api/face-actions.mdx +104 -0
  302. package/docs/api/face-attribute-expression.mdx +87 -0
  303. package/docs/api/face-binding-anchors.mdx +53 -0
  304. package/docs/api/face-effects.mdx +19 -0
  305. package/docs/api/face-info.mdx +112 -0
  306. package/docs/api/face-mesh.mdx +98 -0
  307. package/docs/api/face-painting.mdx +33 -0
  308. package/docs/api/face-retouching.mdx +73 -0
  309. package/docs/api/material-render-state.mdx +132 -0
  310. package/docs/api/runtime-3d.mdx +311 -0
  311. package/docs/api/scene-object-store.mdx +213 -0
  312. package/docs/api/screen-image.mdx +65 -0
  313. package/docs/api/screen-shape.mdx +64 -0
  314. package/docs/api/screen-space-coordinates.mdx +41 -0
  315. package/docs/api/screen-text.mdx +39 -0
  316. package/docs/api/texture-sources.mdx +74 -0
  317. package/docs/api/trackers.mdx +46 -0
  318. package/docs/docs.json +70 -0
  319. package/docs/examples/scene-object-recipes.mdx +194 -0
  320. package/docs/guides/harness-debug-ui.mdx +139 -0
  321. package/docs/inspector/hierarchy-panel.mdx +51 -0
  322. package/docs/inspector/object-inspector-panel.mdx +51 -0
  323. package/docs/introduction.mdx +121 -0
  324. package/docs/scene-objects/overview.mdx +127 -0
  325. package/docs/scene-objects/render-groups.mdx +77 -0
  326. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  327. package/docs/texture-api-consumer.md +84 -0
  328. package/package.json +38 -8
  329. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  330. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  331. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  332. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  333. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  334. package/dist/defaults-BLpcN3pG.cjs +0 -1
  335. package/dist/defaults-LtY4M7dg.js +0 -55
  336. package/dist/index-BXyObVHF.cjs +0 -1
  337. package/dist/index-CY3bUAcW.js +0 -12
  338. package/dist/index-C_Duh13c.cjs +0 -1
  339. package/dist/index-D8fpPQkC.cjs +0 -1
  340. package/dist/index-DxshgBu0.cjs +0 -1
  341. package/dist/index-O-2crZ3M.js +0 -1102
  342. package/dist/internal-BjyhBP8i.cjs +0 -1
  343. package/dist/modules/XRClient/index.d.ts +0 -9
  344. package/dist/modules/index.d.ts +0 -1
  345. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  346. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  347. package/dist/services/ApiService.d.ts +0 -12
  348. package/dist/types/client.d.ts +0 -3
  349. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  350. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  351. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  352. package/dist/useXRModel-BMJE1hrk.js +0 -28
  353. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  354. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  355. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
@@ -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 {};
@@ -1,118 +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
- import { RenderOutputKind } from '../../screen2d';
7
- import * as THREE from "three";
8
- export type XRViewportMode = "dom" | "r3f" | "hybrid";
9
- export type XRViewportSourceKind = "webcam" | "image" | "video";
10
- export type XRViewportFitMode = "auto" | "cover" | "contain";
11
- export type XRViewportMediaStrategy = "internal" | "external";
12
- export type XRViewportMediaAssetOption = {
13
- id: string;
14
- label: string;
15
- src: string;
16
- };
17
- export type XRViewportSourceConfig = {
18
- kind: "webcam";
19
- } | {
20
- kind: "image";
21
- assetId?: string;
22
- } | {
23
- kind: "video";
24
- assetId?: string;
25
- };
26
- export type XRViewportSize = {
27
- width: number;
28
- height: number;
29
- };
30
- export type XRViewportPreviewMode = "media" | "scene" | "finalColor" | "sceneDepth";
31
- export type XRViewportRenderOutputRequest = Partial<Record<RenderOutputKind, boolean>>;
32
- export type XRViewportRenderOutputs = {
33
- requested: XRViewportRenderOutputRequest;
34
- previewMode: XRViewportPreviewMode;
35
- mediaColorTexture: THREE.Texture | null;
36
- sceneColorTexture: THREE.Texture | null;
37
- finalColorTexture: THREE.Texture | null;
38
- sceneDepthTexture: THREE.Texture | null;
39
- estimatedDepthTexture: THREE.Texture | null;
40
- available: Record<RenderOutputKind, boolean>;
41
- };
42
- export type XRViewportRenderState = {
43
- activeDelegate: "GPU" | "CPU" | null;
44
- faces: FaceTrackingResult[];
45
- imageOptions: XRViewportMediaAssetOption[];
46
- layout: XRMediaLayout | null;
47
- mediaError: string | null;
48
- mediaFitMode: Exclude<XRViewportFitMode, "auto">;
49
- mediaLabel: string;
50
- mediaStatus: "idle" | "requesting" | "ready" | "error";
51
- mirrored: boolean;
52
- selectedImageId: string;
53
- selectedSource: XRViewportSourceKind;
54
- selectedVideoId: string;
55
- setMirrored: (value: boolean) => void;
56
- setSelectedImageId: (value: string) => void;
57
- setSelectedSource: (value: XRViewportSourceKind) => void;
58
- setSelectedVideoId: (value: string) => void;
59
- setShowMediaControls: (value: boolean) => void;
60
- showMediaControls: boolean;
61
- trackerError: string | null;
62
- trackerStatus: "idle" | "initializing" | "ready" | "error";
63
- videoOptions: XRViewportMediaAssetOption[];
64
- viewportSize: XRViewportSize;
65
- mediaSize: XRViewportSize;
66
- };
67
- type XRViewportProps = {
68
- children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
69
- fitMode?: XRViewportFitMode;
70
- imageOptions?: XRViewportMediaAssetOption[];
71
- initialImageId?: string;
72
- initialMirrored?: boolean;
73
- initialSource?: XRViewportSourceKind;
74
- initialVideoId?: string;
75
- mediaStrategy?: XRViewportMediaStrategy;
76
- mediaDock?: "top-left" | "bottom-left";
77
- mode?: XRViewportMode;
78
- previewMode?: XRViewportPreviewMode;
79
- renderOutputs?: XRViewportRenderOutputRequest;
80
- showMediaControlsByDefault?: boolean;
81
- source?: XRViewportSourceConfig;
82
- style?: CSSProperties;
83
- videoOptions?: XRViewportMediaAssetOption[];
84
- };
85
- type XRViewportSlotProps = {
86
- children?: ReactNode | ((state: XRViewportRenderState) => ReactNode);
87
- };
88
- type XRViewportComponent = ((props: XRViewportProps) => JSX.Element) & {
89
- Scene: (props: XRViewportSlotProps) => JSX.Element;
90
- Overlay: (props: XRViewportSlotProps) => JSX.Element;
91
- };
92
- export declare const resolveViewportFitMode: (fitMode: XRViewportFitMode, selectedSource: XRViewportSourceKind) => Exclude<XRViewportFitMode, "auto">;
93
- export declare const resolveViewportSourceSelection: ({ imageOptions, initialImageId, initialSource, initialVideoId, source, videoOptions, }: {
94
- imageOptions: XRViewportMediaAssetOption[];
95
- initialImageId?: string;
96
- initialSource?: XRViewportSourceKind;
97
- initialVideoId?: string;
98
- source?: XRViewportSourceConfig;
99
- videoOptions: XRViewportMediaAssetOption[];
100
- }) => {
101
- selectedSource: XRViewportSourceKind;
102
- selectedImageId: string;
103
- selectedVideoId: string;
104
- };
105
- export declare const computeViewportLayout: (source: XRViewportSize, destination: XRViewportSize, fitMode: Exclude<XRViewportFitMode, "auto">) => XRMediaLayout | null;
106
- export declare const resolveViewportSlots: (mode: XRViewportMode, children: ReactNode) => {
107
- sceneContent: ReactNode;
108
- overlayContent: ReactNode;
109
- };
110
- export declare const resolveViewportSlotContent: (content: ReactNode | ((state: XRViewportRenderState) => ReactNode), state: XRViewportRenderState) => ReactNode;
111
- export declare const resolveViewportExternalFaces: ({ detectionResults, selectedSource, }: {
112
- detectionResults: ReturnType<XRModelNodeFaceTracking["getDetectionResults"]> | null | undefined;
113
- selectedSource: CalibrationMediaSourceKind;
114
- }) => FaceTrackingResult[];
115
- export declare const useXRViewportState: () => XRViewportRenderState | null;
116
- export declare const useXRViewportRenderOutputs: () => XRViewportRenderOutputs | null;
117
- export declare const XRViewport: XRViewportComponent;
118
- 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;
@@ -1,4 +1,5 @@
1
1
  export * from './AspectRatioContainer';
2
+ export * from './Axes';
2
3
  export * from './BodyTracker';
3
4
  export * from './FaceTracker';
4
5
  export * from './FaceMesh';
@@ -14,15 +15,26 @@ export * from './HandJoints2D';
14
15
  export * from './HeadBinding';
15
16
  export * from './HeadBindingOccluder';
16
17
  export * from './HeadOccluder';
18
+ export * from './MeshRenderer';
19
+ export * from './LightObject';
20
+ export * from './LookAt';
17
21
  export * from './Panel';
22
+ export * from './PinToMesh';
18
23
  export * from './PerspectiveCamera';
24
+ export * from './RenderGroupLayer';
19
25
  export * from './ScreenImage';
26
+ export * from './ScreenGradient';
27
+ export * from './ScreenGlass';
28
+ export * from './ScreenShape';
29
+ export * from './SceneObjectRenderer';
30
+ export * from './SequentialRenderPasses';
20
31
  export * from './ScreenSpaceUI';
21
32
  export * from './ScreenText';
22
33
  export * from './Segmentation';
23
34
  export * from './SpriteAnimation';
24
35
  export * from './TextLabel';
25
36
  export * from './TrackingAnchor';
37
+ export * from './Transform3D';
26
38
  export * from './VideoBackground';
27
39
  export * from './XRProvider';
28
40
  export * from './XRCompositor';